iOS逆向之 程式碼注入

meryin發表於2018-05-15

一 framework注入

  1. 新建工程001--Demo,根據我上一篇文章的重簽名方式之三 指令碼重簽名的xcodeCodesign.sh檔案,進行重簽名後
  2. Xcode -> TARGETS -> +號 ->Cocoa Touch Framework新建meryinFramework
  3. 在meryinFramework檔案下新建類,在類的+(void)load方法中,進行程式碼編寫,如
+(void)load{
    NSLog(@"meryin--------------xx--");
}
複製程式碼
  1. 繫結meryinFramework:TARGETS ->001--Demo ->+New Copy File Phase, 在Copy File下把Ddestination改為Frameworks,然後把Copy File下的+號,加上新建的meryinFramework,然後build一下
  2. 把 **yololib**工具拷貝到/usr/local/bin資料夾中
  3. 工程001--Demo的Products,001--Demo.app顯示包內容找到包內容中的WeChat可執行檔案,拷貝到桌面上yololib WeChat Frameworks/meryinFramework.framework/meryinFramework那麼就修改了macho檔案的framework依賴關係 7.修改成功過後在工程資料夾的App資料夾中把微信ipa用歸檔方式開啟,然後進行Payload,找到WeChat.app,顯示包內容,找到包內容中的WeChat可執行檔案,替換成第6步的WeChat可執行檔案
  4. 然後把替換後的WeChat.app檔案打包成WeChat.ipazip -ry WeChat.ipa Payload,替換原來的ipa
  5. 最後App資料夾中只剩下替換後的WeChat.ipa,進行執行,結果如下:
    螢幕快照 2018-05-14 下午4.12.51.png
    用MachOView檢視macho的framework依賴關係:
    螢幕快照 2018-05-14 下午4.14.30.png

二 Dylib注入

  1. 接著上面的工程001--Demo , Xcode -> TARGETS -> +號 新建macOS->Library新建meryinDylib

2.改base sdk為iOS

1.png
3. 改code sign identity為iOS developer
2.png

  1. 繫結meryinDylib:選中meryinDylib真機build過後在Copy File下把Ddestination改為Frameworks,然後把Copy File下的+號,加上新建的meryinDylib
    3.png
  2. 在xcodeCodesign.sh檔案中下入程式碼:
# 7 注入dylib
echo "開始注入"
FRAMEWORK_PATH="Frameworks/libmeryinDylib.dylib"
yololib "$TARGET_APP_PATH/$APP_BINARY" "$FRAMEWORK_PATH"
echo "注入結束"
複製程式碼
  1. 在meryinDylib.m中寫入測試程式碼,然後執行
+(void)load{
    NSLog(@"meryin=dylib------");
}
複製程式碼

結果如下

iOS逆向之 程式碼注入

相關文章