之前尝试过用脚本进行应用重签,使用MonkeyDev App对应用重签,但重签的步骤还是一知半解,最近重新看了下手动重签的步骤,对应用重签的步骤有了进一步了解。下面我们来记录下这次手签移动营业厅的步骤
详细步骤
-
获取砸壳应用
签名简书中提到过,砸壳分为静态砸壳和动态砸壳,其中静态砸壳难度太大,所以我们还是选择动态砸壳,这次选择砸壳的工具是frida-ios-dump,点击这里可以了解使用方法获取到砸壳应用后,我们解压缩下ipa
可以手动修改文件后缀为zip,然后手动解压
也可以使用终端,cd至砸壳文件统计目录下执行
unzip -q 中国移动(手机营业厅)_6.7.0.ipa -d ./
查看下Mach-O文件加密状态,cryptid 0 为非加密状态
otool -l ChinaMobile | grep cryptid
- 查找设备上可用证书
security find-identity -v -p codesigning
-
查找app中是否含有Plugins、Watch文件,找到直接删除
- 对frameworks中所有framework进行重签名
codesign -fs "Apple Development: 1225574727@qq.com (5753AVLB68)" xxx.framework
- 获取配置文件
embedded.mobileprovision的获取,可从苹果开发账号中下载;也可新建工程然后编译成功得到ipa 解压ipa并从中获得
查看描述文件信息
security cms -D -i embedded.mobileprovision
-
将描述文件中entitlements下<dict>...</dict>拷贝至新的plist文件下,制作授权文件,并放到Payload的同级目录下
-
修改info.plist文件中bundleIdentifier与描述文件一致
- 重签应用
cd 至Payload同级目录,执行命令
codesign -fs "Apple Development: 1225574727@qq.com (5753AVLB68)" --no-strict --entitlements=../Entitlements.plist ChinaMobile.app
- 生成ipa
手动压缩Payload文件,修改后缀;或使用终端cd至Payload
zip -ry ChinaMobile.ipa Payload
- 安装ipa至手机
注:安装失败报错DeviceNotSuportedByThining,表示info.plist中UISupportedDevices没有当前设备,添加即可!!!
生活如此美好,今天就点到为止。。。