我们都知道,iOS APP安装包里的二进制文件是Mach-O格式,我们如果通过MachOView等软件简单的修改二进制文件里的内容,然后替换原项目里的二进制文件,这时重新生成的ipa包并不能装到所有的手机上。原因就是我们破坏了Mach-O的签名。具体如下两方面:
- Mach-O内部是有签名文件的。如果只是改了mach-o的内容,但没有改签名文件的话,程序是不能运行的 Snip20190106_22.png
-
除了mach-o文件,其余文件的签名是在_CodeSignature中的。
Snip20190106_23.png
这是一张稍复杂的图片,为了彻底弄清楚每个步骤的操作和原理,我们需要对对称加密、公钥加密、单向散列函数、数字签名、证书等有所了解,即以下学习路线: Snip20190106_25.png
接下来的文章将详细讲解加密解密、单向散列函数、数字签名、证书和iOS签名机制,最后讲解重签名的方式。
网友评论