前言
什么是sign值?
可以理解为检验,每一个数据包中有sign值就意味着可以被检验,当我们一旦篡改数据,校验值不正确,则会失败。
准备工作
需要有任意抓包软件并且配置好,然后就是app分析软件(JEB,jadx,mt管理器,或者其他的都可)
开始
打开抓包软件
这里发现密码和sign都被加密了


随便改请求数据发现都提示重复请求

逆向破解app
先看是否被加固,运气不错,并没有被加固,省下了很多工夫

全局搜素sign,发现七千多个,根本找不完,限制包名还有1300多个,还是太多了我们换种方法


根据之前的逆向其他案例,然后我就自己搜了一下请求里面的timestamp,也算是撞上了正确答案了

当然用ai分析也是这几个关键值

看了一下,这个最像,点进去看了一下,果然,这几个关键值都在,应该就是这个没错了

让ai分析一下这段代码可以看出来sign是怎么生成的了
格式为「时间戳 \nrequestid\n 请求体 JSON\n」而且是rsa加密生成 sign

ai 也说了用 RSAUtils.sign 这个方法进行的加密,跳转过去看看,可以发现已经有了rsa私钥并且将签名结果进行 Base64 编码

但是发现登录的密码也有加密,搜索password发现有个encrypt函数,点进去看看,发现也是rsa加密并且也已经给了密钥


至此sign已经分析完毕,接下来就是写加密函数了
进行加密请求
让ai写一个rsa加密,分别进行加密sign和password进行请求最后发现也是成功了

评论 (0)