Crack App | 某新聞 app 注冊(cè) token 加密邏輯分析
第一時(shí)間關(guān)注Python技術(shù)干貨!

圖源:極簡(jiǎn)壁紙
今日目標(biāo)
aHR0cHM6Ly93d3cud2FuZG91amlhLmNvbS9hcHBzLzY2Mjk5Mzg=
抓包分析
在內(nèi)容列表的請(qǐng)求包里面的有token這個(gè)參數(shù)值

但是在開(kāi)始的這個(gè)init包里面沒(méi)有這個(gè)token值

在開(kāi)始的這個(gè)init請(qǐng)求之后的所有的包都帶有token這個(gè)參數(shù)

猜測(cè)是開(kāi)始的init包帶有的加密返回值有這個(gè)token參數(shù),就類(lèi)似設(shè)備注冊(cè)的意思
所以分析的重點(diǎn)從列表頁(yè)移動(dòng)到了開(kāi)始的init包里面
查殼與脫殼

先看看這個(gè)app的殼能不能搞

好像有點(diǎn)難搞,先用寒冰大大的FART試試
試了下開(kāi)源版的frida_fart,提示進(jìn)程終止,應(yīng)該是沒(méi)了,可能是我的姿勢(shì)不對(duì),有知道的大佬評(píng)論區(qū)指點(diǎn)一下

于是我換北風(fēng)哥的脫殼機(jī)試了一試,于是我找北風(fēng)哥 py 了一下,舒服~

北風(fēng)哥也提示了我可以用frida-dexdump試試,并且fart也是可以的,操作提示如下



在北風(fēng)哥的提示下,我研究一下用frida-dexdump脫ijm企業(yè)版

拖完發(fā)現(xiàn)沒(méi)有北風(fēng)哥脫得全,應(yīng)該還是我的姿勢(shì)不對(duì),所以接下來(lái)我還是用北風(fēng)哥脫得 dex 分析
加密邏輯分析與定位
因?yàn)橛?code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(71, 193, 168);">init這個(gè)請(qǐng)求返回的data的加密,所以以init為關(guān)鍵詞搜索
看了幾個(gè)位置,感覺(jué)相關(guān)性都不高
想了一下用token作為關(guān)鍵詞檢索,發(fā)現(xiàn)結(jié)果是在太多了,有1800+多個(gè)相關(guān)的結(jié)果,最后還是在inits里面找到了

在這個(gè)位置點(diǎn)進(jìn)去,然后通過(guò)InitParam聲明的地方找到下面的位置

那么在請(qǐng)求頭中的siganature可能就是這里獲取到的,通過(guò)getSign關(guān)鍵詞找到下面這個(gè)位置

所以在header中的siganature就是getSign(),然后在這個(gè)位置出入m.c并將結(jié)果階段傳入e.a
但是通過(guò)wallbreak只看到下面的代碼

這樣感覺(jué)沒(méi)辦法搞啊,經(jīng)過(guò)一番尋找,還得是舊版的app牛逼
在舊版的app里找到下面的代碼

照著和新版對(duì)比一下就知道,e.a是DES.decrypt,然后m.c是MD5
既然是這樣的話就很簡(jiǎn)單了

按照這個(gè)思路復(fù)寫(xiě)應(yīng)該就可以了
key是由這里的邏輯生成的

這里用到的APP_SECRET_AKEY和時(shí)間戳多次MD5得到 key
ps:就在上圖邏輯的上方,新舊版本相同
得到key之后,解密入?yún)⒌氖钦?qǐng)求返回的密文 data
用python可以實(shí)現(xiàn)解密

可以看到在結(jié)果里面取到token了
簡(jiǎn)單總結(jié)
這個(gè)app磕磕絆絆了很久,在新版的加密上琢磨了很久,鉆了牛角尖,如果早點(diǎn)分析舊版估計(jì)很快就分析出來(lái)了
所以之后如果不是必要還是不要死磕新版,不僅加固牛逼,混淆也很厲害,還有檢測(cè),我用frida和objection都沒(méi)辦法spawn的方式啟動(dòng)app
唉,又是被APP教做人的一天。
感謝北風(fēng)哥,2h 大佬等眾多哥哥的脫殼測(cè)試。
End.
以上就是全部的內(nèi)容了,咱們下次再會(huì)~
公眾號(hào)配套技術(shù)交流群,備注【咸魚(yú)666】,入群交流
我是沒(méi)有更新就在摸魚(yú)的咸魚(yú)
收到請(qǐng)回復(fù)~
我們下次再見(jiàn)。
對(duì)了,看完記得一鍵三連,這個(gè)對(duì)我真的很重要。
