一、目标
今天的目标是某电商App的签名 anti-token ,抓个包先:
main.pngTIP: v 5.44.1
二、步骤
老规矩,上jadx
jadx.png今天好幸运,只有两处,范围缩小了。双击进去看看。
at1a.png这里把 a2 的值赋给了 anti-token,a2的来处是
String a2 = SecureService.m8583a().mo9433a(a, Long.valueOf(longValue));
进入到 mo9433a 去看看,发现是一个接口类。
public interface ISecureService
显然是没法直接hook这个接口类的,所以换个思路,搜索下 "implements ISecureService" 看看谁实现了这个接口:
implecls.png太棒了,找到了两个类,
com.aimi.android.common.service.d$a
com.xunmeng.pxxx.secure.s
就他们俩了,Hook之
objection
Objection 是一个基于Frida开发的命令行工具,它可以很方便的Hook Java函数和类,并输出参数,调用栈,返回值。
TIP: pip install objection
首先加载App,进入交互式分析环境。 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'
这样可以一次性把这两个类下所有的函数都Hook,方便咱们定位到底是哪个函数来做了 anti-token 计算
objection1.png现形了,很明显是 com.xunmeng.pxxx.secure.s.a 函数,不过又遇到一个问题,a函数有好几个重载,而且也看不到他们的入参和返回值?
这时候就可以使用 android hooking watch class_method 来hook函数,并且打印出入参和返回值:
android hooking watch class_method 'com.xunmeng.pxxx.secure.s.a' --dump-args --dump-return
结果很美丽
rc.png然后写个 js用frida搞一搞就行了。
三、总结
Objection可以方便的Hook一堆类或者函数,来缩小咱们分析的范围。它的功能很多,咱们后面再慢慢发掘。
nzqk.png莫因渴望你没有的,而错过你已拥有的;要知道,你现在拥有的,也曾是你渴望的。
有问题可以加我wx: fenfei331 讨论下。
网友评论