標籤:mac 原來 一個 許可權 lin img 選擇 rac 關係
題外話:此教程是一篇嚴肅的學術探討類文章,僅僅用於學習研究,也請讀者不要用於商業或其他非法途徑上,筆者一概不負責喲~~
準備工作
- 非越獄的iPhone手機
- 用PP助手下載: 6.6.5(越獄應用)
MachOView
MachOView:http://sourceforge.net/projects/machoview/
MachOView源碼地址:https://github.com/gdbinit/MachOView
yololib
yololibhttps://github.com/KJCracks/yololib?spm=a2c4e.11153940.blogcont63256.9.5126420eAJpqBD
代碼注入思路:
dylb會載入Frameworks中所有的動態庫,那麼在Frameworks中加一個自己的動態庫,然後在自己動態庫中hook和注入代碼
動態庫存放的位置:Frameworks
找到可執行檔WeChat
用MachOView開啟可執行檔WeChat,在Load Commands裡可以查看到動態庫
步驟:1、建立Framework
TARGETS添加:
2、建立一個WJHook類
3、想實現剛載入就要運行,代碼就要寫在load方法裡
4、為工程添加依賴關係
6、運行,並沒有成功,沒有執行load裡的代碼
原因:用MachOView開啟可執行檔WeChat,在Load Commands找不到WJHookFrameWork
7、將WJHookFrameWork寫入MachO檔案
需要用到工具:yololib
因為經常會用到這個工具,建議將它放到 /usr/local/bin
顯示隱藏檔案,可以使用
$defaults write com.apple.finder AppleShowAllFiles -bool true
$KillAll Finder
這條命令來顯示。同時,將 true 改成 false, 就可恢複隱藏狀態。
- 解壓越獄包
將WeChat.app顯示包內容,找到WeChat可執行檔
增加執行許可權:chmod +x WeChat
寫入WeChat可執行檔:
yololib WeChat Frameworks/WJHookFrameWork.framework/WJHookFrameWork
"Frameworks/WJHookFrameWork.framework/WJHookFrameWork"路徑是指WJHookFrameWork可執行檔的路徑
- 檢查MachO檔案的Load Commands裡是否有WJHookFrameWork
,加入成功。
刪除原來的-6.6.5(越獄應用).ipa,打包Payload
zip -ry WeChat.ipa Payload
將WeChat.ipa放入APP目錄,刪除其他檔案夾
8、運行,成功!
iOS逆向之代碼注入