前言:
“吹氣球,吹個氣球玩球球”......逆了一個小玩意,叫【紙飛機大亂斗】,需攻破的主要有三個地方:請求body中message加密(req_sign)、ss-sign、回傳資料message解密,俗話說:工欲善其事必先利其器,準備好jadx(jeb)、ida pro,
程序:
(一)、請求body中message加密(req_sign)
message里面有很多資訊,大部分欄位均可通過hook方式拿到,其中req_sign是通過演算法計算出來的,
(1)打開jadx,將apk拖入并查找關鍵詞:req_sign,定位到具體代碼位置:

(2)查找到之后,應該就容易明白了,主要就是將三個字串拼接在一起然后進行一次MD5,三個字串分別是:當前時間戳、code_id的值、UUID隨機字串,
(二)、ss-sign
(1)同樣,先查找字符:ss-sign,定位到實作代碼處:

(2)一步一步跟蹤進去,你會發現呼叫了native方法,呼叫的so庫是:libnms.so,用ida打開此so庫,里面有具體的實作程序,但是...我的天讓我吐一會,混淆太嚴重,做了控制流平坦化,你需要做的是什么呢,是去控制流平坦化,我需要做的是什么呢,是直接上andserver,嘿嘿嘿(三連~)......andserver直接google教程就好了,很簡單,

(三)、回傳資料message解密
(1)當你hook了很多資料,你會發現message解密是通過“AES/ECB/PKCS5Padding”去解密的,都知道,解密需要key,key從何而來,key從黃土高坡來...從message前17位字串來,
(2)現在來個反向定位,我們先定位“AES/ECB/PKCS5Padding”解密方法,然后查找方法呼叫位置,一步步向前搜索,即可找到key計算位置:

后記
具體代碼不放了,免得被迫搞成只能VIP可見...思路就是以上思路,成不成就靠大家了...研究可以,不要亂搞...
我的vx:YY_yhzf
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/224201.html
標籤:其他
