小编eli*_*iba的帖子

重新使用已编译的.exe文件中的字符

很久以前,出于好奇,我尝试了十六进制编辑游戏"Dangerous Dave"的可执行文件.我查看了文件中找到的任何字符串,并进行了一些随机编辑,看看它是否真的会改变游戏中显示的文字.

我很惊讶地看到了结果,我现在使用十六进制编辑器和DOSBox重新创建了结果: 在此输入图像描述

可以看出,编辑字符串"ROMERO"中的两个字符"RO"导致4个字符被改变,结果变为"ZUMEZU".似乎程序正在重用这两个字符并在该字符串的开头和结尾打印它们.

这是什么原因?我的第一个猜测是尝试使可执行文件变小,但只是重用字符的代码可能需要比保存的2个字节更多的空间.它只是作者完成的技巧,还是只是一些编译器的巫术?

c binary dos elf

6
推荐指数
1
解决办法
58
查看次数

标签 统计

binary ×1

c ×1

dos ×1

elf ×1