有效可执行Mach-o文件的最小尺寸

时间:2018-04-15 09:25:43

标签: macos executable mach-o mach

我正在处理文件迭代器,它决定了macho文件是否可以运行,并且喜欢根据文件大小添加快速检查。

似乎没有关于男子气概最小尺寸的真正限制,但是有一个下限有效男子气概。

这意味着低于此大小的文件被0xfeedface / 0xfeedfacf前缀标识为男子气概,无法执行。

根据Macho结构,它应该包含可能指向其他段的macho-headers和load-commands。

如果有这样的指定限制,我该如何编译/创建大小为限制的文件。

我猜这样的文件只包含单个加载命令头,指向最小代码..它不会链接到任何dylib,包含静态数据,全局变量等等。但是当我编译简单时返回0的主命令,它仍然链接到/usr/lib/libSystem.B.dylib

粗糙的下边界

谢谢

1 个答案:

答案 0 :(得分:2)

有人准确地写了这个 tiny.s 。它可以在OSX的早期版本中运行:

https://gist.github.com/zliuva/1084476