在很久以前,字符,出于好奇,我已经试过十六进制编辑游戏“危险戴夫”的可执行文件。 我看任何字符串我能找到的文件来解决,并提出了一些随机的编辑,看看它是否会真正改变游戏中显示的文本。重用编译.exe文件
我很惊讶地看到结果,我已经用十六进制编辑器和DOSBox中现在重建:
可以看出,编辑两个字符“RO”字符串“ROMERO”的结果在4个字符被改变,结果变成“ZUMEZU”。看起来好像该程序正在重用这两个字符并在该字符串的开始和结尾处打印它们。
这是什么原因?我的第一个猜测是试图使可执行文件更小,但只有重用字符的代码可能需要比保存2字节更多的空间。 这只是作者完成的一个技巧,或者只是一些编译器巫术?
类似地,有“软”和“DISK,INC”之间的两个额外的字节 - 也按字节压缩的典型指示。 – usr2564301