2

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

BLX  _main

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

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

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

4

1 回答 1

0

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

于 2013-04-09T02:51:48.317 回答