修补程序并使用导出二进制函数时,它会导致elf标头损坏。

有什么办法解决这个问题?

评论

是的,这是一个已知的问题,这是如何解决此问题的说明:github.com/NationalSecurityAgency/ghidra/issues/19

#1 楼

Ghidra导出二进制功能


请注意,二进制导出没有中断,只是被误解了。该导出器仅以二进制形式转储在Ghidra中定义的初始化内存块。块被顺序附加。从来没有打算重新创建可加载/可执行的二进制文件。尽管这当然是一个理想的功能,但它在Ghidra中尚不存在。 -591596603

修补并导出可运行的可执行文件

Ghidra本身目前不支持此功能(2020年4月),并且需要一些外部脚本/叉进行一些折衷,因为大多数一般而言,您不能仅仅将地址空间转换回可执行文件。但是对于修补说明的常见情况,有一些选项:

PR / Fork可能会向上游

目前在https:/上正在开发PR。 /github.com/NationalSecurityAgency/ghidra/pull/1505,旨在实现二进制修补程序

Ghidra脚本

如果构建自定义派生对于快速修补来说太费力了,另一个更简单的选择是使用https://github.com/schlafwandler/ghidra_SavePatch
之类的脚本