Ios ipa文件的校验和

Ios ipa文件的校验和,ios,iphone,Ios,Iphone,是否可以计算iOS ipa文件的校验和,以检查iOS应用程序是否被篡改?甚至有可能做到这一点吗?即使可以在应用程序上传之前计算校验和,但一旦应用程序发布到应用商店,校验和会发生变化吗?是的,您完全可以这样做。我在多个项目中都这样做过,您无法在运行时计算IPA的校验和,但可以检查IPA中的文件 构建IPA后,您可以解压缩IPA并计算IPA内微粒文件的校验和,然后将其存储在某个位置,可能是后端 openssl dgst -sha512 somecorefile.something 然后在运行时检查

是否可以计算iOS ipa文件的校验和,以检查iOS应用程序是否被篡改?甚至有可能做到这一点吗?即使可以在应用程序上传之前计算校验和,但一旦应用程序发布到应用商店,校验和会发生变化吗?

是的,您完全可以这样做。我在多个项目中都这样做过,您无法在运行时计算IPA的校验和,但可以检查IPA中的文件

构建IPA后,您可以解压缩IPA并计算IPA内微粒文件的校验和,然后将其存储在某个位置,可能是后端

openssl dgst -sha512 somecorefile.something
然后在运行时检查文件摘要,查看是否被篡改

注意:AppStore处理将更改IPA,但不会更改您的核心资产文件或捆绑文件,因此您可以保留它们作为事实点,并在运行时验证它们


为了在运行时检查校验和,您可以自己使用或实现某些内容。

IPA(或者更确切地说,它们的内容)已经使用您的分发证书进行了加密签名。你希望实现什么?+Gereon。。。您希望如何验证该校验和?我很确定您可以使用
codesign--verify
来验证。从来没有尝试过,老实说,因为苹果已经在上传过程中进行了这项检查。+Gereon老实说,这是客户端的要求,如果有人重新组合ipa并向服务器发送请求,那么我们可以通过比较应用发送的校验和与服务器上的校验和来检查应用的完整性。我知道如果黑客能够重新编译应用程序,那么他也可以发送校验和,但是有些客户不理解这些东西。我只是想知道这是否可行。你好,格曼,我也在研究这个有趣的话题。你找到解决方案了吗?我希望对整个应用程序进行完整性检查,而不仅仅是一个特定的文件。如果我错了,请纠正我,检查文件摘要并将其发送到服务器违背了检查完整性的目的,黑客可以随时更改此结果,对吗?或者我对这一点的理解是错误的?请看,将其发送到服务器是其中一个想法,您也可以通过在构建期间将文件的校验和注入到包中在本地实现。很多第三方安全SDK都这么做。你好@Satheesh,我认为你的想法是一种赌博?如何决定执行校验和比较的文件?你在一个应用程序中使用了多少文件?另外,可能是黑客篡改了文件A,但你检查了文件B。hmm@TommyLeong可能是我们的核心文件之一,也可能是每次构建时的随机文件,并在构建IPA时注入要在运行时检查的文件详细信息。安全工具做这件事的方式之一有时是比较所有资产和资源,有时是检查可执行文件是否被钩住/修改。