Paradox DB 文件签名

Posted

技术标签:

【中文标题】Paradox DB 文件签名【英文标题】:Paradox DB file signature 【发布时间】:2015-09-09 13:49:58 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

此外,*.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 的数据库引擎打开它。

-阿尔。

【讨论】:

以上是关于Paradox DB 文件签名的主要内容,如果未能解决你的问题,请参考以下文章

将 Delphi BDE Paradox *.db 查询结果导出到文本文件?

Windows Server 2008 x 64 下访问 paradox db 文件的权限

如何实现Paradox数据库文件(*.db)到sql server数据库的导入----要求用代码,不用向导

读取 Paradox 数据库文件

将 paradox / borland 数据库作为单个文件打开

Paradox DB:如何以编程方式更改数据库路径