我想插入说明但没有足够的空间来这样做

逆向工程 部件 吉德拉
2021-06-12 03:12:32

对不起,如果这是一个非常基本的问题/不好的地方/我的英语不好。

我正在使用 Ghidra 修补游戏二进制文件中的指令。大多数情况下,我可以在某个地方找到一些未定义的字节,在那里我可以跳转到并插入新指令,然后跳回我所在的位置。但事实证明,我现在需要比程序中可用的未定义内存更多的空间。我试图在 Ghidra 内的项目结束时添加一些字节,但似乎根本不可能(只能编辑?),有人可以确认吗?

我觉得我可以使用 HexEdit 在可执行文件中手动添加这些字节,然后在 Ghidra 中重新导入 exe 并重新分析它,但这听起来像是不好的做法?

我很想知道人们通常是如何做这件事的,因为我仍然是初学者并且我渴望学习。谢谢。

1个回答

在文件末尾添加额外的字节根本不起作用,因为它是覆盖数据并且您无法在那里执行任何代码,因此如果您需要更多空间将补丁字节写入其中,您可以创建一个新的部分并将其特征设置为可执行和可读,然后跳到它,应用您的补丁并跳回原来的位置。您可以使用很多工具,但我总是为此使用 CFF Explorer,您可以转到“节标题”右键单击右侧,然后“添加节(空白空间)”输入您需要的任何字节值,然后将特征更改为“60000020”,即“可执行”、“可读”和“包含代码”,随心所欲。另一种方法是找到一个“DLL劫持”