iOS代碼注入

1.空工程安裝

目的:讓設(shè)備接收你安裝工程的描述文件,為了重簽名應(yīng)用能夠成功.

2.將砸殼后微信的ipa包放入工程根目錄APP文件夾下
ipa包目錄位置
3.將腳本文件放入工程根目錄下
腳本文件目錄位置.png

腳本執(zhí)行操作內(nèi)容已注釋,如下圖所示:


腳本文件.png
4.進(jìn)?入?工程,在BuildPhases內(nèi)添加腳本
添加腳本文件
4.1在?工程內(nèi)設(shè)置腳本路路徑
設(shè)備腳本路徑

然后運行應(yīng)用,微信就讓我們重簽名了

5.代碼注入思路:

應(yīng)用加載到iPhone的流程是DYLD將可執(zhí)行文件(MachO)加載到內(nèi)存中,DYLD會動態(tài)加載Frameworks中所有的動態(tài)庫,那么在Frameworks中加一個自己的動態(tài)庫,然后在自己動態(tài)庫中hook和注入代碼

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

顯示app的包內(nèi)容


Frameworks
5.2 找到可執(zhí)行文件WeChat
MachO文件
5.3 用MachOView打開可執(zhí)行文件WeChat,在Load Commands里可以查看到動態(tài)庫
Load Commands
5.4 自己創(chuàng)建一個Framework:TARGETS添加:
新建Framework
5.5 新建一個InjectCode類
InjectCode類
5.6 想實現(xiàn)剛加載就要運行,代碼就要寫在load方法里
load方法

編譯運行一下在包內(nèi)容中的Frameworks庫中就有了我們新建的Framework

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

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

5.8 將HankHook.FrameWork寫入MachO文件

需要用到工具:yololib
yololib同樣把yololib文件放入根目錄,然后用腳本執(zhí)行即可


截屏2020-05-16 下午4.51.15.png

腳本注入
5.9 檢查MachO文件的Load Commands里是否有HankHook.FrameWork
注入成功

如圖,注入成功!

5.10 將根目錄APP文件夾下砸殼的ipa包解壓縮, 將WeChat.app顯示包內(nèi)容,找到WeChat可執(zhí)行文件,將注入成功的MachO文件進(jìn)行替換,然后刪除原來的砸殼后的微信-7.0.8.ipa,打包Payload
zip -ry WeChat.ipa Payload

將生成WeChat.ipa放入APP目錄,刪除其他文件夾

6. 運行,成功!

控制臺就會將load方法中的

NSLog(@"\n\n\n注入成功!\n\n\n??????????????????????????????????\n\n\n");

打印出來,說明我們已經(jīng)代碼注入成功了!
ps:因為調(diào)用微信支付時,啟動的是我重簽名的微信,我就把重簽名的微信刪除了,暫時截取不到注入成功后的截圖!

6.1 代碼注入成功了,我們還可不可以有一些更騷的操作呢?

用class-dump解析WeChat的頭文件目錄

6.2 class-dump解析MachO可執(zhí)行文件

將class-dump放入根目錄


class-dump目錄

用終端定位到當(dāng)前根目錄,執(zhí)行命令:

./class-dump -H WeChat -o ./Heaers

然后根目錄下就會生成一個Heaers文件夾


Heaers文件夾

然后我們可以根據(jù)我們真機(jī)調(diào)試時獲取到的控制器文件及方法,然后從Heaers文件夾找到該控制器的類,就能夠找到相關(guān)的屬性和方法,我們就可以通過頭文件中的屬性獲取到我們想要的信息.
以下是我代碼注入的內(nèi)容:


代碼注入內(nèi)容

然后就可以獲取到登錄界面下我們輸入的用戶名和密碼了
后續(xù)的騷操作還需要繼續(xù)研究.

ps:重簽名后的微信盡量不要用大號登錄,微信會檢測到然后被封,錢包里有錢的話可以申請解封,不過有次數(shù)限制.

我剛剛看了下,重簽名微信文件有點大,推了好久還沒推上去,先附上demo地址,推送成功后會自動更新的.GitHub推不上去,我放百度云了,提取碼:uiks
Demo:代碼注入

MachOView: 提取碼: mui7

最后感謝一下邏輯教育Hank老師代碼注入公開課的分享

最后編輯于
?著作權(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ù)。

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