问题 是否可以对我的iPhone应用程序进行逆向工程?


我创建了一个iPhone应用程序,我想将已编译的.app文件发送到我的客户端,这样他就可以在他的设备上安装和测试这个iPhone应用程序。

是否有可能他可以查看此.app文件的内容,例如此应用程序中使用的资源文件(图像,声音文件等)?他可以从编译产品中反向设计用于构建此应用程序的源代码吗?


6541
2018-02-20 16:09


起源

要查看包内容,请按CTRL-Click .app文件,然后“显示包内容”。但是,代码被编译为Unix可执行文件和.nib / Interface构建器文件,这些文件不是人类可读的。 - Tom
@Jerry Coffin:不,不是。 app文件是目录。 - jer
@Harinder - 您原来的措辞很短,不太清楚。通过您的额外说明,我编辑了一些措辞,以帮助证明这是一个合理的问题。我同意现在应该重新开放。 - Brad Larson♦
@fuzzy棒棒糖:是的,这是我在谷歌搜索后发现的 - iHS
@fuzzy棒棒糖感谢您的纠正。我搞砸了 .app 同 .ipa ... - ohho


答案:


在OSX上 应用程序包 只是一个名为的目录 .app 一些关于应用程序的特殊元数据文件,以及应用程序可执行文件及其资源。右键单击并选择 Show Package Contents 将显示的全部内容 Application.app 目录。

任何未使用某些应用程序特定加密的文件资源,图像,声音,属性等都将是明显可访问的。

也就是说,应用程序代码,如果是原生的Objective-C应用程序,将被编译并且不容易进行逆向工程,则必须进行反编译,如果删除调试信息将需要专门的黑客来查看程序集输出并修改它。


14
2018-02-21 20:45



是否意味着如果他们付出努力,他们可以获得确切的源代码? - Krishnan