我有一个 ARMv7 Mach-O 可执行文件,我想在其上修补二进制标头中的某个段,以防止 DYLD 注入。
此处有更多信息,请参阅第 3 点防止 dyld 注入。TL;DR 带有 __restrict 段的 __RESTRICT 二进制标头部分可防止 iOS 上的 DYLD 注入。
不幸的是,我不确定如何正确修补文件。我是简单地用零填充负责 LC_SEGMENT 的文件偏移量,还是将其完全删除(意味着删除并因此改变文件大小,可能?破坏偏移量)?
提前致谢
马耳他
我有一个 ARMv7 Mach-O 可执行文件,我想在其上修补二进制标头中的某个段,以防止 DYLD 注入。
此处有更多信息,请参阅第 3 点防止 dyld 注入。TL;DR 带有 __restrict 段的 __RESTRICT 二进制标头部分可防止 iOS 上的 DYLD 注入。
不幸的是,我不确定如何正确修补文件。我是简单地用零填充负责 LC_SEGMENT 的文件偏移量,还是将其完全删除(意味着删除并因此改变文件大小,可能?破坏偏移量)?
提前致谢
马耳他
该工具声称它可以移动和删除加载命令。可能值得一看。
编辑
多年后我终于得到了一个 mac 并且可以确认@igors 的评论 - 它不适用于 mac (: 保留在这里以供参考如何在 Linux 上实现
在任何 Linux 中使用“strip”命令从 ELF 文件中剥离一个部分很容易(我也打赌在 OSX 中,虽然我自己从未尝试过)。
做就是了:
strip -R __restrict
它应该可以解决问题