修补 Mach-O 二进制标头以删除 LC_SEGMENT

逆向工程 二元分析 手臂 修补 男子气概
2021-06-19 23:53:03

我有一个 ARMv7 Mach-O 可执行文件,我想在其上修补二进制标头中的某个段,以防止 DYLD 注入。

此处有更多信息,请参阅第 3 点防止 dyld 注入。TL;DR 带有 __restrict 段的 __RESTRICT 二进制标头部分可防止 iOS 上的 DYLD 注入。

不幸的是,我不确定如何正确修补文件。我是简单地用零填充负责 LC_SEGMENT 的文件偏移量,还是将其完全删除(意味着删除并因此改变文件大小,可能?破坏偏移量)?

提前致谢

马耳他

2个回答

该工具声称它可以移动和删除加载命令。可能值得一看。

编辑
多年后我终于得到了一个 mac 并且可以确认@igors 的评论 - 它不适用于 mac (: 保留在这里以供参考如何在 Linux 上实现

在任何 Linux 中使用“strip”命令从 ELF 文件中剥离一个部分很容易(我也打赌在 OSX 中,虽然我自己从未尝试过)。

做就是了:

strip -R __restrict

它应该可以解决问题