一、目标

一、目标

今天的目标是某电商App的签名 anti-token ,抓个包先:

main
1:main

二、步骤

老规矩,上jadx

jadx
1:jadx

今天好幸运,只有两处,范围缩小了。双击进去看看。

at1a
1:at1a

这里把 a2 的值赋给了 anti-token,a2的来处是

String a2 = SecureService.m8583a().mo9433a(a, Long.valueOf(longValue));

进入到 mo9433a 去看看,发现是一个接口类。

public interface ISecureService

显然是没法直接hook这个接口类的,所以换个思路,搜索下 "implements ISecureService" 看看谁实现了这个接口:

implecls
1:implecls

太棒了,找到了两个类,

com.aimi.android.common.service.d$a
com.xunmeng.pxxx.secure.s

就他们俩了,Hook之

objection

Objection 是一个基于Frida开发的命令行工具,它可以很方便的Hook Java函数和类,并输出参数,调用栈,返回值。

首先加载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
1:objection1

现形了,很明显是 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
1:rc

然后写个 js用frida搞一搞就行了。

三、总结

Objection可以方便的Hook一堆类或者函数,来缩小咱们分析的范围。它的功能很多,咱们后面再慢慢发掘。

年也过完了,神兽也归笼了,知识星球也快过百了。后面我们会继续推出一些实例教程和一些基础教程。虽然技术在进步但是基本的理念和方法是不变的。

很高兴和大家在这个公众号相遇,也很荣幸和大家能一起学习进步,有一切好的建议都可以给公众号留言或者加wx

当然别忘了支持下知识星球

nzqk
1:nzqk

莫因渴望你没有的,而错过你已拥有的;要知道,你现在拥有的,也曾是你渴望的。

100

关注微信公众号,最新技术干货实时推送

100