没有main函数的iOS可执行文件

时间:2013-04-09 02:41:07

标签: ios objective-c reverse-engineering ida

我创建了一个测试应用,然后导出为IPA文件。我使用IDA pro查看可执行二进制文件。我发现main函数是由start subsroutine调用的:

BLX  _main

所以我得出结论,mach-o可执行文件的入口点是start子例程,最终调用main函数。

然而,当我尝试打开其他应用程序的可执行文件(我使用Clutch抓取)时,我发现根本没有_main函数,而是像sub_2A4C这样的东西。

我想知道为什么会有这样的差异?

1 个答案:

答案 0 :(得分:0)

你的结论是不对的。确实,入口点是start子例程,start子例程最终调用代码中声明的main函数也是如此。但是,如果在Xcode构建设置中的“部署后处理”和“剥离链接产品”选项中选择“是”,则符号将被条带化,因此您不会再将主函数视为_main,而是将其视为sub_2A4C。 / p>