一揭朝、目標
今天的目標是某電商App的簽名 anti-token ,抓個包先:
TIP: v 5.44.1
二欣除、步驟
老規(guī)矩住拭,上jadx
今天好幸運,只有兩處历帚,范圍縮小了滔岳。雙擊進去看看。
這里把 a2 的值賦給了 anti-token挽牢,a2的來處是
String a2 = SecureService.m8583a().mo9433a(a, Long.valueOf(longValue));
進入到 mo9433a 去看看谱煤,發(fā)現(xiàn)是一個接口類。
public interface ISecureService
顯然是沒法直接hook這個接口類的,所以換個思路禽拔,搜索下 "implements ISecureService" 看看誰實現(xiàn)了這個接口:
太棒了刘离,找到了兩個類,
com.aimi.android.common.service.d$a
com.xunmeng.pxxx.secure.s
就他們倆了睹栖,Hook之
objection
Objection 是一個基于Frida開發(fā)的命令行工具硫惕,它可以很方便的Hook Java函數(shù)和類,并輸出參數(shù)野来,調(diào)用棧恼除,返回值。
TIP: pip install objection
首先加載App曼氛,進入交互式分析環(huán)境豁辉。 objection -g 包名 explore
objection -g com.xunmeng.pxxx explore
然后Hook這兩個類:
android hooking watch class 'com.aimi.android.common.service.d$a'
android hooking watch class 'com.xunmeng.pxxx.secure.s'
這樣可以一次性把這兩個類下所有的函數(shù)都Hook,方便咱們定位到底是哪個函數(shù)來做了 anti-token 計算
現(xiàn)形了搪锣,很明顯是 com.xunmeng.pxxx.secure.s.a 函數(shù),不過又遇到一個問題彩掐,a函數(shù)有好幾個重載构舟,而且也看不到他們的入?yún)⒑头祷刂担?/p>
這時候就可以使用 android hooking watch class_method 來hook函數(shù),并且打印出入?yún)⒑头祷刂?
android hooking watch class_method 'com.xunmeng.pxxx.secure.s.a' --dump-args --dump-return
結(jié)果很美麗
然后寫個 js用frida搞一搞就行了堵幽。
三狗超、總結(jié)
Objection可以方便的Hook一堆類或者函數(shù),來縮小咱們分析的范圍朴下。它的功能很多努咐,咱們后面再慢慢發(fā)掘。
莫因渴望你沒有的殴胧,而錯過你已擁有的渗稍;要知道佩迟,你現(xiàn)在擁有的,也曾是你渴望的竿屹。
有問題可以加我wx: fenfei331 討論下报强。