新人第一次某头像app接口请求sign分析
本帖最后由 slslsl 于 2023-3-2 16:42 编辑新人学习app逆向第一次尝试分析过程记录
分析对象:某头像app,界面如下
首先通过模拟器抓包,成功抓取到其中的数据接口,发现其中带有sign参数
将其余参数修改后重新请求,返回签名失败,得出结论所有请求参数均参与了sign签名计算
根据特征盲猜sign的计算方法为请求参数排序后进行md5计算得出,于是乎尝试进行sign值计算还原,尝试了几种方案,均未成功还原出正确的sign值
开始尝试apk文件逆向,直接丢入工具中发现有加壳
那么尝试使用frida-dexdump进行脱壳(具体过程就不放上来了)
完成脱壳后得到dex文件,并全部拖入jadx中进行分析
直接文本搜索可能的值 "sign=" 得到结果如下
找到对应代码处,发现该sign值通过一个signTopRequest方法计算得出
其中传入了三个参数
treeMap应该为参数体,accessKeySecret为加密相关secret,signatureMethod为请求方法
参数对应下图具体方法实现
返回上一层尝试查找具体accessKeySecret值,发现只定义了相关变量,以及get、set方法
根据写法进行搜索setAccessKeySecret未找到调用位置。
目前卡在这里,望各位大佬指点后续逆向思路
附相关apk文件下载地址
http://www.51txapp.com/app/wygxw.apk
--------------------3月2号更新--------------------------
已成功解决
通过搜索其他接口中固定关键字,找到了一个setParams设置参数的方法
可以看到sign的值由后面的formatUrlMap计算得出,继续跟进
这里就很明显了,看到其中给返回值str赋值的部分
str = ******.APP_KEY + sb.toString()
于是乎顺利找到最后一块拼图!
最终成功实现正确sign值计算。
感悟:思路灵活是最重要的,往往一条路容易走进死胡同,及时转变思路,寻找其他突破口,不经意间就会有收获!
感觉是调用系统的加密库,试试算法助手去hook,然后根据日志去判断,算法助手在我帖子里有 正己 发表于 2023-2-28 22:27
感觉是调用系统的加密库,试试算法助手去hook,然后根据日志去判断,算法助手在我帖子里有
好的膜拜大佬!看你教程来的,这就去试一下 我也在做另一个app接口请求sign分析,遇到了问题搞不懂了
今天看到你的这个帖子,我就想走一遍你的过程。下载你的这个apk之后,frida-dexdump进行脱壳,得到了21个dex文件,拖到jadx里面去看,连”sign=“都搜不到,不知道是哪里出了问题 naobing 发表于 2023-3-21 19:15
我也在做另一个app接口请求sign分析,遇到了问题搞不懂了
今天看到你的这个帖子,我就想走一遍你的过程。 ...
可以分享一下,俺也来一起练个手试一试 slslsl 发表于 2023-3-22 19:18
可以分享一下,俺也来一起练个手试一试
可以从这里来下载。不过需要手机号注册、登录,稍微有点麻烦。
https://www.apk8.com/softapk/8323.html
页:
[1]