PC端微信逆向分析(強制輸出微信調(diào)式信息)源碼及工具,由吾愛大神原創(chuàng)制作的一個微信逆向分析PC端工具,并提供程序和源碼資源下載,這款PC端微信逆向分析工具由JieKeH的一篇文章《PC微信逆向---分析獲取登錄二維碼的數(shù)據(jù)》啟發(fā),修改了一些功能項目,可以查看微信調(diào)試程序信息,本次帶來PC端微信逆向分析源碼和程序資源下載,感興趣的朋友們不妨看看吧!
PC端微信逆向分析說明
更簡單的方式
編寫DLL,所涉及到的知識較多,涉及到編碼、編譯、注入等一系列操作,不但操作復(fù)雜而且修改也不容易。近日,最新正式版的微信2.8.0.106推出,我在此新版本上進程了相關(guān)的嘗試,其實只是在CE中進行簡單的一些設(shè)置,即可滿足需求,就算是新手也不難掌握。由于剪輯視頻太耗時間,而且相比于上一個視頻也沒多少新意,因此僅整理成文檔分享給大家。部分內(nèi)容,之前的視頻中有講解,這里就不再贅述,直接進入本文主題。
定位“是否啟用調(diào)試”的地址
在OD中附加微信后,查詢二進制代碼“74 14 FF B5 EC FE FF”(為何是這個二進制代碼,請參考之前的視頻講解),定位到如下代碼片段,并在接下來的CALL(WeChatWi.79164604)上下一個斷點:
ds:[0x79A6CA01],這個地址,就是是否啟動調(diào)試的開關(guān)。計算出偏移地址:0x160CA01。在微信中,這個地址中的數(shù)據(jù)被設(shè)置成0,因此調(diào)試信息將不會輸出。只要將這個地址中的數(shù)據(jù)更改為1,那么輸出調(diào)試信息的開關(guān)就被打開了。但是,調(diào)試信息還有其他開關(guān),那就是調(diào)試級別。
定位“調(diào)試級別”的地址
查詢二進制代碼“56 89 9D F0 FB FF FF”(為何是這個二進制代碼,請參考之前的視頻講解),定位到如下代碼片段:
進入 WeChatWi.79154DB0這個CALL后,到達如下代碼片段:
ds:[0x79A1CD54],這個地址,就是調(diào)試級別的設(shè)置。計算出偏移地址:0x15BCD54。在微信中,這個地址中的數(shù)據(jù)被設(shè)置成2,也就是高于“kLevelDebug”的信息才會被輸出。只要將這個地址中的數(shù)據(jù)更改為0,也就是“kLevelAll”或“kLevelVerbose”,也就是輸出全部調(diào)試信息。
定位調(diào)試數(shù)據(jù)的代碼段
在JieKeH的文章中,完成這兩步設(shè)置后,調(diào)試信息即可輸出,在DebugView中課捕獲微信自身的調(diào)試信息。正如前文所述,隨著微信版本的升級,此方法很快失效。于是,基于此設(shè)置,我再用HOOK的方式,重新讓微信具備了調(diào)試信息的輸出的功能。到目前最新的2.8.0.106版本,HOOK方法依然有效。當然,無論怎么做,定位調(diào)試數(shù)據(jù)這個步驟還是不能少的。
用鼠標動一動微信,OD中程序?qū)和T谡{(diào)用“WeChatWi.79164604”處(之前下的斷點處),按F7進入該函數(shù)。注意觀察堆棧窗口,持續(xù)按F8,單步執(zhí)行,直到堆棧頂部出現(xiàn)如下類似的信息。這些信息,就是原本要輸出的調(diào)試信息。接下來,在HOOK中,同樣把這個數(shù)據(jù)提取出來,從調(diào)試信息中輸出,然后在DebugView中捕獲。
這時候,觀察程序運行的代碼部分,計算出該代碼片段中“add esp,0x4c“所在匯編代碼的偏移地址:0x‭CE7853‬。其代碼片段如下:‬
在上一個HOOK的視頻中,我在這里進行了HOOK。在本文中,我使用CE來進行一小段“代碼注入”即可代替編寫DLL這種難度高、而且手續(xù)繁雜的工作。
定位堆棧中數(shù)據(jù)的地址
雖然數(shù)據(jù)在堆棧頂部,但是由于下來要對堆棧進行操作,如果使用ESP來取數(shù)據(jù),還需一些手動的計算,稍顯麻煩。由于EBP在堆棧操作過程中會保持不變,因此我們使用EBP加上一定的偏移量來取數(shù)據(jù),這樣就不需要額外的手動計算。
在OD堆棧窗口中,點右鍵選擇“轉(zhuǎn)到EBP“,在該行的地址上雙擊,變成”$==>“
然后,在OD堆棧窗口中,點右鍵選擇“轉(zhuǎn)到ESP“,記錄該行相對于EBP的偏移:$-40E0。也就是說,當前的數(shù)據(jù)位于[ebp-0x40E0]這個地方,也就是ESP所指向的地方。因此,我們?nèi)〉搅藬?shù)據(jù)存儲的地址:ebp-0x40E0。
PC端微信逆向分析測試
輸出調(diào)試信息:1
設(shè)置調(diào)試級別:0
OutPutDebug:啟用(那個方框中間畫一個叉)
以管理管身份啟動“DebugView”軟件,用鼠標動一動微信,即可觀察到微信輸出的調(diào)試信息。