2023年最新京东sign签名算法分析

一.准备好工具

用到工具如下

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

猜你喜欢

转载自blog.csdn.net/danran550/article/details/123394841