逆向插入動態庫

向越獄手機中已有項目插入一個動態庫,動態庫中添加功能代碼,下面只插入一個NSLog打印代碼,用來觀察是否爲插入成功。

一、注意事項

1、準備越獄的蘋果設備;
2、創建動態庫,選擇越獄手機;
3、動態庫證書與工程證書選擇保持一致,如果默認,生成的.framework動態庫需要對其簽名。

二、創建動態庫

1、創建一個工程,點擊General下方加號添加動態庫,選擇framework工程

create.png

select.png

2、注意創建的動態庫的唯一標識、證書、系統版本號要與創建工程保持一致,相當於直接給動態庫簽名,否則執行插入命令會報錯。如果選擇默認也行,查看文章最後的解決方法

dynamic.jpeg

3、添加一個分類InsertClass

@implementation InsertClass
+(void)load{
    NSLog(@"我已潛入敵人內部,請指示");
}
@end

4、由於模擬器及真機對應的CPU架構不同,因此選擇越獄設備進行打包,才能和設備應用相匹配

product.png

獲取到framework後取出到桌面準備傳入到越獄手機中,如下:

scp -r insert.framework [email protected]:/var/root/

三、嚮應用插入動態庫(向微信插入動態庫)

1、連接越獄手機

ssh [email protected]

connect.jpeg

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

執行結果如下:

success.jpeg

注意:如果執行報錯,動態庫未簽名,先查找可簽名的證書(Mac終端):

/usr/bin/security find-identity -p codesigning -v

根據查找到的證書對動態庫簽名:

codesign -fs "iPhone Developer: Hao Luo (FV2836NGQS)" insert.framework

簽名成功後上傳至越獄手機,再執行插入命令。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章