今天我们分享下如何将上一篇Theos的使用中生成的动态库在未越狱的设备上使用
- 拿到自己生成的动态库,这里是通过安装过这个动态库的越狱手机中获取的,目录为Library/MobileSubstrate/DynamicLibraries下
- 查看链接的动态库
otool -L HelloTheos.dylib
查看链接的动态库
未越狱手机是无法找到CydiaSubstrate这个库的,这里我们将CydiaSubstrate从越狱手机中取出拿到app中,并将动态库中的依赖路径修改为app中
install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/CydiaSubstrate HelloTheos.dylib
通过上面指令进行修改,再次查看CydiaSubstrate的链接路径,是否修改成功
查看CydiaSubstrate的链接路径
- 将CydiaSubstrate以及修改后路径的动态库拷贝到砸壳后的app中
查看app的加密状态
otool -l TheosDemo| grep cry
查看app的加密状态
- 将CydiaSubstrate、fuyao_tweak.dylib拷入app中
- 动态库注入
通过insert_dylib工具进行。下载源码,编译生成insert_dylib工具,并将工具拷入/usr/local/bin目录下,使用下面指令进行注入
insert_dylib @executable_path/HelloTheos.dylib ./TheosDemo
动态库注入
通过上面指令进行修改,查看Mach-O文件中动态库链接路径,是否修改成功
检查动态库注入
覆盖原文件
mv TheosDemo_patched TheosDemo
otool -L TheosDemo
检查TheosDemo
- 对CydiaSubstrate、HelloTheos.dylib进行重签名
6.1 查看本地可用证书
security find-identity -v -p codesigning
查看本地可用证书
重签两个文件
codesign -f -s "Apple Development: 1225574727@qq.com (5753AVLB68)" CydiaSubstrate
codesign -f -s "Apple Development: 1225574727@qq.com (5753AVLB68)" HelloTheos.dylib
重签两个文件
- 对app进行重签
7.1 删除签名文件_CodeSignature
7.2 替换embedded.mobileprovision文件
7.3 对mach-o文件进行重签
codesign -f -s "Apple Development: 1225574727@qq.com (5753AVLB68)" --no-strict --entitlements=../Entitlements.plist ./TheosDemo.app/TheosDemo
mach-o文件重签
7.4 检查是否有framework,有则对所有framework进行重签
7.5 修改plist文件中的bundleid
7.6 打包ipa
zip -ry TheosDemoNew.ipa Payload
大功告成!!!
生活如此美好,今天就点到为止。。。