为什么有些APP没有上架App Store?iOS 打包签名内幕( 四 )

  • 对需要重签名的.app右键显示包内容,然后将动态库拷贝到Framework文件夹(没有则新建)中 。然而此时动态库与app还没建立关联关系,动态库需要注入MachO中才能生效 。注入使用yololib工具,下载yololib并编译,将生产的命令复制到/usr/local/bin或$PATH中的其他路径,便可以在终端使用yololib指令## 通过yololib工具实现注入动态库 yololib "MachO文件路径" "需要注入的动态库路径"注入成功后再对所有Framework签名,最后对app重签名,然后生成ipa文件 。这里整理了一份用于重签名的脚本 CJCodeSign,想了解更多关于签名指令的内容可点击查看详情 。
  • 3.4 关于重签名的思考iOS重签名实现,可以发现用于签名的私钥资源(包括.cer证书和Provisioning Profile配置)和实际签名的app包是没有强关联关系的,这也就带来了两方面的问题 。
    1. .cer证书和Provisioning Profile配置被用于其他App的分发签名,特别如果是In-House企业类型的证书,那是可以进行无限制分发的,而一旦苹果检测到这种违规签名的行为,轻则撤销证书,重则注销企业开发者账号!这也就是为什么一定要严格把控 p12、Provisioning Profile 文件外发的原因 。
    2. 自有App被注入代码后重签名,比如应用多开、添加插件、恶意抓包等等,对于这一类的防护除了对Bundle ID进行检查,以及对App动态库增加白名单检索外好像也没有更好的办法 。当然这已经涉及到逆向防护的方向了,本人对此还未深入了解,有兴趣的同学可以一起参与探讨 。
    全文完!
    最后再附上重签名脚本地址: CJCodeSign
    作者简介:lele8446,iOS开发深耕者,爱好分享、深?探讨有温度的内容,GitHub地址 。




    推荐阅读