【发布时间】:2017-01-03 01:36:37
【问题描述】:
有一个游戏总是在同一个汇编代码点崩溃,我没有源代码,所以唯一的方法是直接编辑 exe 文件来修复它。
根据反汇编程序的说法,不断崩溃的地方是地址 0x00629115,具有指针地址访问,其中 ECX 指针位于未初始化的地址,超过 50% 的机会为 0x0(可能在 C 代码中使用未初始化的指针)。在该地址之前有一个 JGE 命令,如果比较成功则跳过崩溃代码。
现在我要做的是将 0x00629106 处的 JGE 命令修改为 JMP 命令,以便它始终跳过崩溃代码。
但是我注意到,如果我在十六进制编辑器中打开 .exe 文件并转到地址 0x00629106,则二进制代码与反汇编程序中显示的不同。我想知道我应该如何编辑 exe 二进制文件。
【问题讨论】:
-
搜索几个相邻的字节,并确保它们在代码中只找到一次。
标签: windows assembly binary exe disassembly