Paradox 数据库文件签名

Paradox DB file signature

我在网上搜索 Paradox DB 文件 (.db) 的幻数,但没有结果。

这些文件的二进制签名是什么?

我不想回答这个问题,因为通过文件的内容来识别文件的类型本质上是不可靠的——二进制签名只告诉你文件可能属于某种类型,但不能保证另一个文件会赢' 恰好包含该字符串。

另外,*.DB文件的二进制签名识别较弱,因为几乎所有的字节都携带高度可变的信息,并且大多数常量字节为零:

 byte  constant
offset  value
  --     --
   2     00
   3     08
   E     00
   F     01
  14     00
  2A     00
  2B     00
  2C     00

(此答案中的所有值均以十六进制形式给出)

可能有很多非 *.DB 文件会意外匹配此模式。

另外几个字节很容易解释并提供额外的信息:

byte offset 4:
  00 = indexed .DB data file
  01 = primary index .PX file
  02 = non-indexed .DB data file
  03 = non-incrementing secondary index .Xnn file
  04 = secondary index .Ynn file (inc or non-inc)
  05 = incrementing secondary index .Xnn file
  06 = non-incrementing secondary index .XGn file
  07 = secondary index .YGn file (inc or non inc)
  08 = incrementing secondary index .XGn file

byte offset 39:
  03      version 3.0
  04      version 3.5
  05..09  version 4.x
  0A..0B  version 5.x
  0C      version 7.x

Borland 从未公布其数据库文件的内部格式。我认为要通过内容可靠地识别 *.DB 文件,您必须尝试使用​​ Borland 的数据库引擎打开它。

-Al.