闲来无事,想抓取一下“XX值得买”上排行榜的即时数据,按照通用方法
安装夜神模拟器 新增android 5.0版模拟器
安装xposed框架
安装JustTrustMe.apk
打开fidder 配置好模拟器代理
抓取成功
-
把抓取请求参数复制到postman中重复请求,成功
常规来说操作到这步就截止了,不过我突然发现url里有一个sign参数,说明每次请求是带签名的,我把sign修改一下,果然请求失败了。
所以问题变成了怎么得到请求签名方式,而这只能通过反编译来实现了。
于是,开始查如何反编译,无非是三件套 apktool,dex2jar,jd-gui或者jadx-gui
先下载好app的最新安装包,使用apktool进行解包
apktool d -s -f test.apk
可以看到,其中有多个dex文件,所以直接用dex2jar将apk转换成jar文件即可
d2j-dex2jar.bat test.apk
得到test-dex2jar.jar
在jadx-gui中打开该jar即得到全部反编译源码
搜索上面抓取到的接口地址,定位到相关代码
看来这个a方法就是签名方法
点进去以后 找到了key和具体签名方法
但是获取key的方法竟然是一个native方法
这可如何是好,本来我想搜索如何调试native方法,发现还要看汇编语言,这可把我难住了。
不过转念一想,我不用调试native,我只要能取到这个native方法的返回值不就好了。
所以,下一步就是用android studio调试反编译出的源码,获取到key。