Android后門計(jì)劃-QQ防撤回分析

前言:確實(shí)好久沒有更新文章了,最近有些懶了,逆向確實(shí)水特別深啊, 這次發(fā)個(gè)庫(kù)存吧, 不過大家注意不要用作非法用途,僅供參考學(xué)習(xí),所以不發(fā)成品。 還諒解。

分析某Q版本:8.0.7.4085

這里只說明以一系列的分析思路和技巧,想直接看結(jié)果可以去文章末尾直接看。

? 用另一個(gè)聊天賬號(hào)撤回一條消息,然后用模擬器上的qq觀察。 Ddms工具捕捉時(shí)間段內(nèi)的棧心思,猜測(cè)捕捉msg關(guān)鍵詞

? 找到mqq.app. MSFServlet. onReceive() 方法
image.png

,
這里發(fā)現(xiàn)了remove關(guān)鍵詞,猜測(cè)為刪除這條信息,那我們不讓這條信息發(fā)出去

? 然后把這個(gè)方法直接重寫

? 測(cè)試之后不行,發(fā)現(xiàn)這個(gè)方法是處理消息的最上層。 這里的remove是處理一個(gè)Map的、

那這個(gè)response是什么,我hook到把它打印了出來。

發(fā)現(xiàn)它的信息都在wupBUffe[]部分
image.png

? 繼續(xù)向下走。。


image.png
image.png

那些亂七八糟的類,都在這個(gè)包下

追到這個(gè)類,我的眼睛已經(jīng)快不行了。 不過我想繼續(xù)向下找


image.png

WupBuffer 這個(gè)字段很敏感


image.png

繼續(xù)往后,看哪里還有處理這個(gè)的。
image.png

這里處理了一下,然后重新put了一次。像個(gè)解密的地方。

看看怎么解密的
減去了4個(gè)長(zhǎng)度,并且調(diào)用了這個(gè)方法

image.png

然后回到 atca看到,又把這個(gè)對(duì)象給發(fā)走了

image.png

點(diǎn)過去一看還是個(gè)抽象方法,那就去看他的實(shí)現(xiàn)類。實(shí)現(xiàn)類也看不到。在Hook里已經(jīng)拿到了 wupBuffer的數(shù)組,我們按照他的處理完之后,重新轉(zhuǎn)String看看能不能得到更多的信息。

image.png

線索中斷,更換思路

線索中斷,jadx內(nèi)存吃不消了,用killer找撤回的關(guān)鍵詞,找到撤回的部分


image.png

name_APKTOOL_DUPLICATENAME_0x7f0c2a24
全局搜


image.png

繼續(xù)搜 0x7f0c2a24

三處

image.png

Killer卡死了。。。 換jadx看代碼吧(手動(dòng)哭泣) 上戰(zhàn)場(chǎng),槍很重要?。。?!

從上到先先記錄一下這些類中使用的方法

Aidx—aj(ToServiceMsg,F(xiàn)romServiceMsg,Object) --沒用
Aiji—a(ArrayList)
Aiji—b(ArrayList)---在這里有個(gè)意外收獲,發(fā)現(xiàn)了D方法,就是當(dāng)自己撤回的時(shí)候??聪旅?br> Atdx—a(QQAppInterface,Submsgtype0x8a$ReqBody,JZ) ---信息量太大,看看上面的先(但是這里是最有可能的暫時(shí)看來)

Aiji—b

image.png

熱門都走了這個(gè)東西。 然后我們?nèi)タ纯?andk.a

我決定hook這個(gè) andk.a 方法,我不管。我看的頭大了。。。 先試試再說!

然后,沒走。。。

然后hook atdx的a方法,一直報(bào)錯(cuò)找不到那個(gè)方法,然后

image.png

然后我決定打印他的所有a方法,并且拿到他的所有a方法的參數(shù)類型

image.png
image.png

我們需要找一個(gè)

image.png

類似這樣的列表看看

image.png

應(yīng)該是這個(gè)了,跟我們的核對(duì)一下看看哪里有問題

com.tencent.mobileqq.app.QQAppInterface、tencent.im.msgsync.cmd0x100.Submsgtype0x8a$ReqBody、(暫時(shí)看來是這里錯(cuò)了)
long、
boolean、

先把上面的方法日志注釋掉,然后看下面的hook能不能拿到參數(shù)


image.png

這里打出來的就是 ReqBody的內(nèi)容。 (記錄重啟了無數(shù)次。。。。。。模擬器。。要崩潰)

然后,hook不報(bào)錯(cuò)了,但是方法好像并沒有走到這里!??!
我…. 接近崩潰,我要上AndroidStudio調(diào)試了?。。?!

機(jī)器屬實(shí)吃不消了,,畢竟這個(gè)內(nèi)存不是無限大啊,i58代cpu也該退休了

? 項(xiàng)目導(dǎo)入AndroidStudio


image.png
image.png
image.png
image.png

我選擇8700你隨意
? 然后,看下qq的

image.png

2301
? 輸入adb命令 adb forward tcp:8700 jdwp:2301

image.png

? 我要在每個(gè)有撤回文字的地方打上斷點(diǎn)! 分別為:

image.png
image.png

.


image.png
image.png
image.png

(AndroidStudio一點(diǎn)好處就是不用滾輪,光標(biāo)放到目錄里,直接輸入類名即可)

image.png

? 開始打斷點(diǎn)
? 好了,調(diào)試失敗

image.png

我沒了。。。

? 解決各種問題卡頓之后, 斷點(diǎn)走到了 aiji.b 方法
? 來hook這個(gè)方法
? 最后。。。我成功了!

分析不易,一鍵三連。

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

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

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