iOS逆向之代碼注入(framework)

題外話:此教程是一篇嚴肅的學(xué)術(shù)探討類文章,僅僅用于學(xué)習(xí)研究,也請讀者不要用于商業(yè)或其他非法途徑上,筆者一概不負責(zé)喲~~

準(zhǔn)備工作

  • 非越獄的iPhone手機
  • 用PP助手下載: 微信6.6.5(越獄應(yīng)用)
  • MachOView

MachOView下載地址:http://sourceforge.net/projects/machoview/
MachOView源碼地址:https://github.com/gdbinit/MachOView

  • yololib

yololib下載地址https://github.com/KJCracks/yololib?spm=a2c4e.11153940.blogcont63256.9.5126420eAJpqBD

代碼注入思路:

DYLD會動態(tài)加載Frameworks中所有的動態(tài)庫,那么在Frameworks中加一個自己的動態(tài)庫,然后在自己動態(tài)庫中hook和注入代碼

動態(tài)庫存放的位置:Frameworks

image.png

找到可執(zhí)行文件WeChat

image.png

用MachOView打開可執(zhí)行文件WeChat,在Load Commands里可以查看到動態(tài)庫


image.png

image.png
image.png

步驟:

1、根據(jù)iOS逆向之自動化重簽名先編譯運行微信,然后新建Framework

TARGETS添加:


image.png

image.png

2、新建一個WJHook類

image.png

3、想實現(xiàn)剛加載就要運行,代碼就要寫在load方法里

image.png

4、為工程添加依賴關(guān)系

  • 在代碼注入targets的Build Phases中添加Copy Files


    image.png
  • 在Copy Files中選擇Frameworks


    image.png
  • 添加WJHookFrameWork


    image.png

5、編譯一下,在app包的位置查看

image.png

顯示包內(nèi)容,在Frameworks中查看


image.png

由上可知,WJHookFrameWork已經(jīng)加入成功

6、運行,并沒有成功,沒有執(zhí)行l(wèi)oad里的代碼

原因:用MachOView打開可執(zhí)行文件WeChat,在Load Commands找不到WJHookFrameWork

7、將WJHookFrameWork寫入MachO文件

需要用到工具:yololib
因為經(jīng)常會用到這個工具,建議將它放到 /usr/local/bin

image.png

  1. 顯示隱藏文件,可以使用
    $defaults write com.apple.finder AppleShowAllFiles -bool true
    $KillAll Finder
    這條命令來顯示。同時,將 true 改成 false, 就可恢復(fù)隱藏狀態(tài)。
  2. 或者使用快捷鍵 ? + ?? + . 來實現(xiàn)
  • 解壓微信越獄包


    image.png
  • 將WeChat.app顯示包內(nèi)容,找到WeChat可執(zhí)行文件
    增加執(zhí)行權(quán)限:chmod +x WeChat
  • 寫入WeChat可執(zhí)行文件:
    yololib WeChat Frameworks/WJHookFrameWork.framework/WJHookFrameWork

"Frameworks/WJHookFrameWork.framework/WJHookFrameWork"路徑是指WJHookFrameWork可執(zhí)行文件的路徑


image.png
  • 檢查MachO文件的Load Commands里是否有WJHookFrameWork


    image.png

    如圖,加入成功。

  • 刪除原來的微信-6.6.5(越獄應(yīng)用).ipa,打包Payload
    zip -ry WeChat.ipa Payload
    將WeChat.ipa放入APP目錄,刪除其他文件夾
    image.png

8、運行,成功!

image.png

代碼和工具已上傳:https://gitee.com/winjayq/ios_reverse_code_injection

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 代碼注入過程 1、新建一個工程;2、將微信Payload文件夾放入新建的工程中的APP文件夾里面; 3、在Buil...
    Colin_狂奔的螞蟻閱讀 2,695評論 3 6
  • 如果你想成為一名合格的iOS逆向開發(fā)工程師,又沒有一套自己的工具集,又想做逆向開發(fā),唯一的辦法:自己想想吧,哈哈~...
    lukyy閱讀 1,600評論 0 2
  • 如果你渴望成為一名精通iOS逆向開發(fā)的工程師,但卻缺乏自己的工具集,那么在著手實戰(zhàn)開發(fā)之前,提前準(zhǔn)備好逆向開發(fā)工具...
    聽木子說心語閱讀 3,688評論 6 18
  • 轉(zhuǎn)發(fā)自 2016-07-07何兆林騰訊Bugly 如果您有耐心看完這篇文章,您將懂得如何著手進行app的分析、追蹤...
    樹懶啊樹懶閱讀 10,864評論 5 63
  • 王維,字摩詰,王維的名字的來歷是這樣的,王維的母親很崇拜佛教,王維的母親是一位高僧的弟子,并把佛教里面的印...
    樊4閱讀 3,954評論 1 1

友情鏈接更多精彩內(nèi)容