一.准备好工具
用到工具如下
1.最新版本APP (下载地址 https://www.wandoujia.com/apps/279987)
2.jadx java逆向工具(下载地址https://github.com/skylot/jadx)
3.ida逆向工具(自行百度)
4.Fiddler 抓包工具 (自行百度)
5.安卓手机一台
二.初步分析
1.先在手机下载好最新app,然后配置好fiddler手机抓包,网上很多配置抓包教程,这里不详细说了。
2.在app随便搜索一个商品试一试,发现有sign签名,并且含有部分重要信息,之后会用到
参数 | 含义 |
---|---|
functionId | 搜索接口名字 |
clientVersion | app版本 |
client | 手机类型 |
st | 时间戳 |
sv | 签名算法 |
body | 请求的数据 |
三.逆向APP分析源码
1.直接jadx打开app查看代码,查找了好久发现了一个比较相关的地方
根据上面日志输出的分析
sgin签名 计算涉及到了接口的这几个参数
functionId,body,uuid,client,clientVersion
String signature = JDHttpTookit.m20863WV().mo68383Xd().signature(JDHttpTookit.m20863WV().getApplicationContext(), functionId, str, str2, property, versionName)
其中的uuid 大概意思应该就是获取设备ID
2.进去加密方法体里面继续分析
方法体里面是这样子的,是个接口,既然有接口肯定有实现,继续查找
找到一个有点像样的,刚好也是5个参数
关键代码
BitmapkitUtils.getSignFromJni(context, str, str2, str3, str4, str5);
继续进去方法体分析
这段代码大概意思是 getSignFromJni 这个加密方法 是调用了jdbitmapkit.so里面的代码
ReLinker.loadLibrary(JdSdk.getInstance().getApplication(), "jdbitmapkit");
3.找出jdbitmapkit.so文件
直接压缩软件打开app,搜索,找出文件
四.逆向分析libjdbitmapkit.so 文件
1.直接上IDA,把文件拖进去
在方法sub_127E4 找到关键词sign=
方法里面也刚好有uuid,body,st等关键词,确认是这个没错了
2.查看ida的代码分析一下算法,并且用java还原
收工
技术交流QQ 53461569