我们在工作中使用一个应用程序,它的维护早已被放弃,但我们仍然需要维护。在这种情况下,这意味着对程序进行逆向工程。我已经使用 ghidra 对程序进行了反编译,并找到了我要添加的代码行以及添加位置。
原指令如下:
007b6aae 8d 7e 50 LEA EDI,[ESI + 0x50]
就在上面,我想补充一下:
[Some offset] 31 f6 XOR ECI,ECI
Ghidra 不会让我这样做,所以我使用的是原始的十六进制代码编辑器。问题是仅仅在 之前插入字节是8d 7e 50
行不通的,因为它与LEA
创建无效代码的指令相混淆。我认为我需要将新代码放置在新的偏移量处,但我对hex/assembly
代码了解得不够多,不知道该怎么做。