DFM文件变为二进制文件并被感染

时间:2013-01-01 06:58:49

标签: forms delphi dfm

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

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

此外,该文件已被感染。

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

1 个答案:

答案 0 :(得分:0)

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

从文本文件更改为二进制文件的出现是已知的,可以在另一个问题的堆栈溢出中找到。我只会描述文件的感染。

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

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

我下载了二进制编辑器,修复了所有长度为10的事件,并且文件显示和编译得很好。

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