今天我們分享下如何將上一篇Theos的使用中生成的動態(tài)庫在未越獄的設(shè)備上使用
- 拿到自己生成的動態(tài)庫,這里是通過安裝過這個(gè)動態(tài)庫的越獄手機(jī)中獲取的,目錄為Library/MobileSubstrate/DynamicLibraries下
- 查看鏈接的動態(tài)庫
otool -L HelloTheos.dylib

查看鏈接的動態(tài)庫
未越獄手機(jī)是無法找到CydiaSubstrate這個(gè)庫的,這里我們將CydiaSubstrate從越獄手機(jī)中取出拿到app中,并將動態(tài)庫中的依賴路徑修改為app中
install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/CydiaSubstrate HelloTheos.dylib
通過上面指令進(jìn)行修改,再次查看CydiaSubstrate的鏈接路徑,是否修改成功

查看CydiaSubstrate的鏈接路徑
- 將CydiaSubstrate以及修改后路徑的動態(tài)庫拷貝到砸殼后的app中
查看app的加密狀態(tài)
otool -l TheosDemo| grep cry

查看app的加密狀態(tài)
- 將CydiaSubstrate、fuyao_tweak.dylib拷入app中
- 動態(tài)庫注入
通過insert_dylib工具進(jìn)行。下載源碼,編譯生成insert_dylib工具,并將工具拷入/usr/local/bin目錄下,使用下面指令進(jìn)行注入
insert_dylib @executable_path/HelloTheos.dylib ./TheosDemo

動態(tài)庫注入
通過上面指令進(jìn)行修改,查看Mach-O文件中動態(tài)庫鏈接路徑,是否修改成功

檢查動態(tài)庫注入
覆蓋原文件
mv TheosDemo_patched TheosDemo
otool -L TheosDemo

檢查TheosDemo
- 對CydiaSubstrate、HelloTheos.dylib進(jìn)行重簽名
6.1 查看本地可用證書
security find-identity -v -p codesigning

查看本地可用證書
重簽兩個(gè)文件
codesign -f -s "Apple Development: 1225574727@qq.com (5753AVLB68)" CydiaSubstrate
codesign -f -s "Apple Development: 1225574727@qq.com (5753AVLB68)" HelloTheos.dylib

重簽兩個(gè)文件
- 對app進(jìn)行重簽
7.1 刪除簽名文件_CodeSignature
7.2 替換embedded.mobileprovision文件
7.3 對mach-o文件進(jìn)行重簽
codesign -f -s "Apple Development: 1225574727@qq.com (5753AVLB68)" --no-strict --entitlements=../Entitlements.plist ./TheosDemo.app/TheosDemo

mach-o文件重簽
7.4 檢查是否有framework,有則對所有framework進(jìn)行重簽
7.5 修改plist文件中的bundleid
7.6 打包ipa
zip -ry TheosDemoNew.ipa Payload
大功告成?。。?/p>
生活如此美好,今天就點(diǎn)到為止。。。