一 framework注入
- 新建工程001--Demo,根據我上一篇文章的重簽名方式之三 指令碼重簽名的xcodeCodesign.sh檔案,進行重簽名後
- Xcode -> TARGETS -> +號 ->Cocoa Touch Framework新建meryinFramework
- 在meryinFramework檔案下新建類,在類的+(void)load方法中,進行程式碼編寫,如
+(void)load{
NSLog(@"meryin--------------xx--");
}
複製程式碼
- 繫結meryinFramework:TARGETS ->001--Demo ->+New Copy File Phase, 在Copy File下把Ddestination改為Frameworks,然後把Copy File下的+號,加上新建的meryinFramework,然後build一下
- 把 **yololib**工具拷貝到/usr/local/bin資料夾中
- 工程001--Demo的Products,001--Demo.app顯示包內容找到包內容中的WeChat可執行檔案,拷貝到桌面上
yololib WeChat Frameworks/meryinFramework.framework/meryinFramework
那麼就修改了macho檔案的framework依賴關係 7.修改成功過後在工程資料夾的App資料夾中把微信ipa用歸檔方式開啟,然後進行Payload,找到WeChat.app,顯示包內容,找到包內容中的WeChat可執行檔案,替換成第6步的WeChat可執行檔案 - 然後把替換後的WeChat.app檔案打包成WeChat.ipa
zip -ry WeChat.ipa Payload
,替換原來的ipa - 最後App資料夾中只剩下替換後的WeChat.ipa,進行執行,結果如下: 用MachOView檢視macho的framework依賴關係:
二 Dylib注入
- 接著上面的工程001--Demo , Xcode -> TARGETS -> +號 新建macOS->Library新建meryinDylib
2.改base sdk為iOS
3. 改code sign identity為iOS developer- 繫結meryinDylib:選中meryinDylib真機build過後在Copy File下把Ddestination改為Frameworks,然後把Copy File下的+號,加上新建的meryinDylib
- 在xcodeCodesign.sh檔案中下入程式碼:
# 7 注入dylib
echo "開始注入"
FRAMEWORK_PATH="Frameworks/libmeryinDylib.dylib"
yololib "$TARGET_APP_PATH/$APP_BINARY" "$FRAMEWORK_PATH"
echo "注入結束"
複製程式碼
- 在meryinDylib.m中寫入測試程式碼,然後執行
+(void)load{
NSLog(@"meryin=dylib------");
}
複製程式碼
結果如下