获取破壳应用
手动签名是对破壳后的应用进行签名,应用破壳有两种:
1、通过越狱手机获取破壳应用;
2、通过PP助手
获取越狱应用即可。
将砸壳应用放到桌面或其他方便操作的地方,当前使用的是微信应用:
![](https://img.haomeiwen.com/i1609369/a04581cf51070190.png)
签名步骤
1、创建一个WeChat
工程,本测试中使用的是xcode
自动生成的证书和描述文件,也可以使用创建的证书和描述文件,因为都是从苹果服务器申请获取的,参考《应用签名-签名原理》,所以能够对APP
进行手动签名。接入真机并编译,获取.app
中的描述文件。如下图:
![](https://img.haomeiwen.com/i1609369/8c0a04ddd598216e.png)
2、右键.app
显示包内容复制embedded.mobileprovision
到桌面备用,使用命令查看描述文件中的权限配置(Entitlements
下的为权限配置):
security cms -D -i embedded.mobileprovision
权限文件部分:
<key>Entitlements</key>
<dict>
<key>application-identifier</key>
<string>48HJPW679W.com.yahibo.WeChat</string>
<key>keychain-access-groups</key>
<array>
<string>48HJPW679W.*</string>
</array>
<key>get-task-allow</key>
<true/>
<key>com.apple.developer.team-identifier</key>
<string>48HJPW679W</string>
</dict>
3、创建一个plist
权限文件,并将embedded.mobileprovision
中的权限文件复制到plist
中,用来对砸壳应用重签名。
![](https://img.haomeiwen.com/i1609369/549e47936355877a.png)
4、将权限文件移动到桌面或其他方便操作的地方,并将embedded.mobileprovision
文件加入到砸壳应用包中(.app
右键显示包内容)。如下图:
![](https://img.haomeiwen.com/i1609369/325bedaf33b55a78.png)
5、修改砸壳应用中包中info.plist
的唯一标识:
![](https://img.haomeiwen.com/i1609369/d16af1c0d58965f0.png)
6、给可执行文件执行权限
chmod +x WeChat
7、进入到桌面砸壳应用,因为对Watch
中的app
无法签名,所以直接删除,Plugins
中插件无法被验证不能使用,所以需要删除。
Watch
文件(删除):
![](https://img.haomeiwen.com/i1609369/a7cbfc4e3650469d.png)
PlugIns
文件(删除):
![](https://img.haomeiwen.com/i1609369/be310d2d5a2e745a.png)
8、进入Frameworks
(.app
中的文件)文件中对所有库重签名。
1)查看当前安装的证书
security find-identity -v -p codesigning
2)使用可用证书对每一个库签名
codesign -fs "iPhone Developer: yahibo@qq.com (64R6BCB698)" ProtobufLite.framework
注意:签名证书要与工程中使用的证书保持一致
签名使用的证书如下:
![](https://img.haomeiwen.com/i1609369/9efc53229f87af52.png)
对Frameworks
下的所有库重签名:
![](https://img.haomeiwen.com/i1609369/7f09890e63e894fa.png)
9、签名APP
,返回桌面,用已经创建好的权限文件对.app
重新签名
codesign -fs "iPhone Developer: yahibo@qq.com (64R6BCB698)" --no-strict --entitlements=Entitlements.plist Payload/WeChat.app
在创建工程时自动生成的描述文件中已经包含了测试设备id
,签名后app
即可安装到测试设备上;如果想添加多台设备,可以自己创建证书,创建描述文件时添加需要安装的设备,重签名使用该证书即可。
安装:
1、签名完之后可以放在xcode
中替换原有的.app
,直接运行;如下图:
![](https://img.haomeiwen.com/i1609369/79153755eaaedc16.png)
2、打包APP,通过Xcode->window devices
安装ipa
包。打包命令如下:
zip -ry WeChat.ipa Payload
安装ipa
:
![](https://img.haomeiwen.com/i1609369/8e625daa7cf16af1.png)
总结
应用签名步骤如下:
- 从
PP助手
或越狱手机
中获取解密ipa包
; - 创建新应用,并安装至手机,获取
.app包
中的描述文件; - 从描述文件中获取权限配置,并创建
en.plist
权限文件; - 进入解密
ipa包
中的.app文件
,移除Plugin
插件及Watch
文件; - 使用上面创建工程的证书,对解密的
.app/Frameworks
文件下的库进行重签名; - 将第
2步
获取的描述文件放入解密的.app包
下; - 使用第
3步
的en.plist
权限文件对整个.app包
进行重签名; - 向手机安装
.app包
或者打包为.ipa包
。
注意
在操作过程中发现以下问题:
1、通过越狱手机获取到的破壳应用,由于手机CPU
架构不同(测试用iPhone5
),会导致安装失败;
2、创建的工程获取描述文件时注意,要使用一手描述文件(重新编译描述文件会发生变化,签名APP
验证不通过)。
网友评论