我有一台Windows 7电脑。我听说Window的可执行文件使用PE格式。我试图了解如何组装可执行文件,因此我在十六进制编辑器中打开了一个。他们从标题“MZ”开始,以便计算机知道它是一个.exe文件。大部分不是英语。我还注意到,在我的特定文件中,它有3个96个NULL字符的“块”。其中两个接近开始,一个在最后。这是什么样子:可执行文件如何在位/字节级别上工作?
BrokenLink
该代码使用FASM汇编。
这是它的代码被编译之前:
BrokenLink
所以我的问题是,如何可执行文件“放在一起”。什么是无尽的NULL字符。另外,如何编辑文件的十六进制代码并添加一个字节数据是“损坏的”,但是如果只是更改一个字节,那很好。
感谢所以mcuh !!!
Christian
谢谢,这非常有帮助。在链接上面的十六进制代码中,它有一个字符串“你需要更多的啤酒空间吗?”。如果我想添加一个额外的问号,如“你是否需要更多的啤酒空间?”,我需要编辑什么字节。我注意到,如果你改变一些东西,比如“你给啤酒喂更多的空间吗?”它仍然可以工作,但如果你添加额外的字节,它将无法工作。 – 2012-04-01 18:01:41
你不能以一种简单的方式。这可能会在只读数据部分。如果你在那里添加一个字节,那么你必须将所有数据从那里转移。如果你这样做了,为了使程序正常工作,那么你必须将该字符串后面的所有数据引用都转换为1字节。 – 2012-04-01 18:13:19