0

我们有一个以文本文件开头的 DFM 文件。

几年后,在我们的一个较新版本中,Borland Developer Studio 将其更改为二进制格式。

此外,该文件已被感染。

有人可以解释我现在该怎么办吗?我在哪里可以找到如何读取二进制文件结构?

4

1 回答 1

0

好吧,我发现了 DFM 文件发生了什么,但我不知道为什么。

从文本文件更改为二进制文件的发生是已知的,并且可以在另一个问题的堆栈溢出中找到。我将仅描述文件的感染情况。

在 DFM 文件的原始语言 Pascal 中,字符串是这样定义的:第一个字节是字符串的长度(0-255),其他字符是字符串。(与 C 不同,它的字符串长度由空字符识别)。

有人(也许是 BDS?)在将文件从文本文件更改为二进制文件时,还将所有长度为 13(0D)的字符串更改为长度为 10(0A)。这样,字符串在 10 个字符后结束,下一个字符是属性的值。

我下载了二进制编辑器,修复了所有长度为 10 的出现,文件显示和编译良好。

(不仅属性长度被感染,而且 Icon.Data 属性上的一个字节也从 0D 替换为 0A)

于 2013-01-02T08:04:32.373 回答