向越獄手機中已有項目插入一個動態庫,動態庫中添加功能代碼,下面只插入一個NSLog
打印代碼,用來觀察是否爲插入成功。
一、注意事項
1、準備越獄的蘋果設備;
2、創建動態庫,選擇越獄手機;
3、動態庫證書與工程證書選擇保持一致,如果默認,生成的.framework
動態庫需要對其簽名。
二、創建動態庫
1、創建一個工程,點擊General
下方加號添加動態庫,選擇framework
工程
2、注意創建的動態庫的唯一標識、證書、系統版本號要與創建工程保持一致,相當於直接給動態庫簽名,否則執行插入命令會報錯。如果選擇默認也行,查看文章最後的解決方法
3、添加一個分類InsertClass
@implementation InsertClass
+(void)load{
NSLog(@"我已潛入敵人內部,請指示");
}
@end
4、由於模擬器及真機對應的CPU
架構不同,因此選擇越獄設備進行打包,才能和設備應用相匹配
獲取到framework
後取出到桌面準備傳入到越獄手機中,如下:
scp -r insert.framework [email protected]:/var/root/
三、嚮應用插入動態庫(向微信插入動態庫)
1、連接越獄手機
ssh [email protected]
2、另開終端上傳動態庫到根目錄
scp -r insert.framework [email protected]:/var/root
3、在越獄手機上找到應用路徑
ps -A
找到微信可執行文件路徑:
/var/containers/Bundle/Application/EB29BBE6-2F89-467F-A1B1-E0FFFCF3AF75/WeChat.app/WeChat
4、使用DYLD_INSERT_LIBRARIES
動態插入動態庫
DYLD_INSERT_LIBRARIES=insert.framework/insert /var/containers/Bundle/Application/EB29BBE6-2F89-467F-A1B1-E0FFFCF3AF75/WeChat.app/WeChat
執行結果如下:
注意:如果執行報錯,動態庫未簽名,先查找可簽名的證書(Mac終端):
/usr/bin/security find-identity -p codesigning -v
根據查找到的證書對動態庫簽名:
codesign -fs "iPhone Developer: Hao Luo (FV2836NGQS)" insert.framework
簽名成功後上傳至越獄手機,再執行插入命令。