应用程序包保护 – 签名包*可能会被修改

也许你们都知道.app包很容易通过诸如iExplorer这样的工具阅读(对于那些认为只有iTunes文件共享允许访问iPhone上的数据的人来说)。 也许你还读过iOS编程指南,标题为“安装特定于应用程序的数据文件作为首次发布”。 相关段落:

“…因为iOs应用程序是代码签名的,所以修改软件包中的文件会使应用程序的签名失效,并阻止您的应用程序在未来启动。”

这是明显的错误,至less在某种程度上。

我试图修改从AppStore购买的几个免费的第三方应用程序中的几个文件,并成功修改了几个文件的内容。 Voala,应用程序启动没有任何问题。 事情是,我用上面提到的iExplorer,没有黑客攻击,破解,破解。 只需一个支持开发的设备,并发布,审查应用程序。

我该怎么办?

代码签名仅在通过iTunes,Xcode,iPhoneconfiguration实用程序等安装在设备上时被validation。所以编程指南的措辞有点误导。

这可能归结为性能 – 有一些非常大的应用程序,并且每次启动时都必须validation所有应用程序资源的校验和会花费太长时间。

而代码签名的目的并不是要防止篡改,而是要检测篡改。 或者更准确地说,这只是一种说明您使用这些特定资源构build了特定二进制文件的方法。 攻击者可以完全删除代码签名,如果他们想要的话。

所以总会有办法通过debugging等方式来修改应用程序的资源,甚至是修改代码。您无法真正保护这一点。