双重签名:
应用签名使用RSA非对称加密算法
1、Mac电脑通过Xcode生成一对密钥,将公钥通过CSR文件发送给苹果服务器
2、苹果本身也有一对密钥,服务器通过私钥对Mac的公钥进行加密,并携带一些其他信息(服务器配置的设备ID ,AppID 权限文件等),通过开发者证书的形式回传给电脑
3、Mac通过私钥对App进行签名,并且苹果回传的信息打包进App
4、手机用自己的公钥解密服务器颁发的证书,获取服务器加密后的Mac的公钥,并对App进行验证,成功后,可以顺利安装App
重签名
通过codesign对“微信”进行重签名
1、下载微信的砸壳(越狱)应用: 可以通过PP助手等第三方应用下载越狱应用,或者对应用进行砸壳
2、查看微信的签名信息:
首先我们解压砸壳应用拿到Payload下的app,然后查看签名信息
codesign -vv -d Wechat.app
3、获取本地的证书 security find-identity -v -p codesigning,我们获取iPhone的证书(与下边的应用要使用同一个)
4、查看微信App包的内部信息: 删除Plugins和Watch文件夹 (普通证书无法对插件进行签名)
5、我们对Frameworks文件夹下的所有frameworks进行重签名我们使用codesign -fs 本地证书 framework文件
6、回到Wechat.App目录chmod +x Wechat.app,设置执行权限
7、新建工程申请描述文件,真机运行将应用和证书放到手机里
8、拿到刚获取的描述文件,丢到Wechat.app包里边,并且更改info.plist里边的bundleID,与刚创建的应用一致
9、对Wechat.app进行签名:
a、`security cms -Di` 查看描述文件
b、拿到权限文件的内容 "Entitlements"下的内容
c、创建一个a.Plist文件,讲权限文件的内容放到Plist文件下
d、将这个文件放到Wechat.app的同级目录下
e、`codesign -fs 证书 --no-strict --eneitlements=a.plist Wechat.app`
10、command+shift+2 将应用安装到手机上
11、使用Xcode,选择debug-> Attach to Process,找到微信,进行应用附加,便可以动态调试微信这个应用
通过Xcode进行重签名
1、依然要完成上述的4(删除)5(重签Frameworks)
2、新建Wechat的同名工程,直接编译,将修改的Wechat的包替换到新建的包直接真机执行,成功运行