使用jadx反编译 调试“XX值得买”APP获取接口签名key(一)

时间:2022-11-12 22:55:19

闲来无事,想抓取一下“XX值得买”上排行榜的即时数据,按照通用方法

  1. 安装夜神模拟器 新增android 5.0版模拟器

  2. 安装xposed框架

  3. 安装JustTrustMe.apk

  4. 打开fidder 配置好模拟器代理

  5. 抓取成功

  6. 把抓取请求参数复制到postman中重复请求,成功

    使用jadx反编译 调试“XX值得买”APP获取接口签名key(一)

常规来说操作到这步就截止了,不过我突然发现url里有一个sign参数,说明每次请求是带签名的,我把sign修改一下,果然请求失败了。

所以问题变成了怎么得到请求签名方式,而这只能通过反编译来实现了。

于是,开始查如何反编译,无非是三件套 apktool,dex2jar,jd-gui或者jadx-gui

先下载好app的最新安装包,使用apktool进行解包

apktool d -s -f test.apk

使用jadx反编译 调试“XX值得买”APP获取接口签名key(一)

可以看到,其中有多个dex文件,所以直接用dex2jar将apk转换成jar文件即可

d2j-dex2jar.bat test.apk

得到test-dex2jar.jar

在jadx-gui中打开该jar即得到全部反编译源码

使用jadx反编译 调试“XX值得买”APP获取接口签名key(一)

搜索上面抓取到的接口地址,定位到相关代码

使用jadx反编译 调试“XX值得买”APP获取接口签名key(一)

看来这个a方法就是签名方法

点进去以后 找到了key和具体签名方法

使用jadx反编译 调试“XX值得买”APP获取接口签名key(一)

但是获取key的方法竟然是一个native方法

使用jadx反编译 调试“XX值得买”APP获取接口签名key(一)

这可如何是好,本来我想搜索如何调试native方法,发现还要看汇编语言,这可把我难住了。

不过转念一想,我不用调试native,我只要能取到这个native方法的返回值不就好了。

所以,下一步就是用android studio调试反编译出的源码,获取到key。