iOS审核上架

iOS应用重签名(手动)

2019-12-20  本文已影响0人  冰雨9527

从上面可以得知,双层签名其实本质就是如下三个步骤:

注:对APP进行重新签名,前提是这个APP已经被砸壳了。下载已经砸壳成功的APP,以下例子用微信举例:越狱版本微信7.0.2 提取码: 2w87

具体步骤:

Step 1 进入WeChat目录

解压出 Wechat7.0.2越狱 ,进入WeChat目录

// 进入WeChat的目录
cd /Users/dengbin/Desktop/分享/主目录/资料/Wechat7.0.2越狱/Payload

Step 2 查看APP的证书情况

codesign -d -vv「WeChat.app路径」

Step 3 查看验证APP是否被加密

进入APP的包内容可以看到其中有一个WeChat的可执行文件,也就是是MachO文件,就是要查看这个MachO文件时候被加密



otool -l WeChat | grep cryp

其中cryptid0代表已经砸壳,即解密,为1或者2表示以第1类或者第2类加密方案加密。

Step 4 查看本地证书并记录需要用到的证书

security find-identity -v -p codesigning

Step 5 删除不可签名的插件(还有Watch中的插件)

由于本地存在一些插件,这些插件是不可被我们重签,并且这个过程我们用不着,所以我们索性就删掉。 其中包括:整个目录PlugIns目录和整个Watch目录(因为Watch.app中也有个PlugIns)



Step 6 Framework重签名

这一步就是比较繁琐的了,需要将Frameworks下的所有Framework进行重签名,运用到XCode提供的codesign指令,参数中的证书就是Step 4中的一个。具体使用哪个就看个人了

codesign –fs 「证书串」 「文件名」

使用Xcode自带的 codesign进行重签名
codesign -fs A045DD673737AE67D691854647D3823D3DC18262 ConfSDK.framework


Step 7 给MachO添加可执行权限

由于MachO本身就有可执行权限,所以这一步跳过。

Step 8 App重签名

codesign -fs 「证书串」 --no-strict --entitlements=entitlements.plist

codesign -fs A045DD673737AE67D691854647D3823D3DC18262 --entitlements entitlements.plist ~/Desktop/Payload/WeChat.app


 zip –ry 「输出文件名」 「输入文件名」

Step 9 安装新的ipa

可以通过各种途径安装ipa,如Xcode,PP助手,fir,iTunes等等, 如果手机上有正版的微信,在安装完我们重签名的ipa包后会发现手机上就有两个微信啦!!!

如果想用LLDB调试微信,可以将重签后的WeChat.app替换NewWeChat Build后的WeChat.app,然后直接运行(Run)项目,就会发现我们可以用LLDB了。
Xcode安装ipa

Step 10 再次验证新的ipa是否真的重签成功

这一步其实是重复Step 3

codesign -d -vv「WeChat.app路径」

步骤总结:

1、cd WeChat // 进入WeChat的目录
2、codesign -d -vv「WeChat.app路径」 // 查看APP的证书情况
3、otool –l WeChat | grep cryp // 查看APP是否被加密
4、security find-identity -v -p codesigning // 查看本地证书
5、删除不可签名的插件(还有Watch中的插件)
6、codesign –fs 「证书串」 「文件名」 // Framework重签名
7、chmod +x 可执行文件   // 给文件添加权限
8、App重签名
     ① 新建一个项目并且命名为 WeChat(下文称NewWeChat,原来的微信APP称之为WeChat) -> Build -> 找到APP中的权限文件 embedded.mobileprovision
     ② 复制embedded.mobileprovision到WeChat.app中
     ③ 修改WeChat.app中info.plist的BundleId
     ④ security cms -D -i 「 embedded文件路径」 //查看WeChat中的embedded文件,复制WeChat中entitlements.plist文件的entitlements字段
     ⑤ 在NewWeChat中新建entitlements.plist文件,将上一步复制得到的「entitlements字段和其中的内容」拷贝入新的entitlements.plist文件
     ⑥ codesign -fs 「证书串」 --no-strict --entitlements=entitlements.plist //复制新的entitlements到WeChat.app的同级目录,并且对APP重新签名
     ⑦ zip –ry 「输出文件名」 「输入文件名」 // 压缩Playload
9、安装ipa 
10、再次验证新的ipa是否真的重签成功
上一篇 下一篇

猜你喜欢

热点阅读