首页
社区
课程
招聘
[原创]某谷米APP 请求接口sign值生成流程分析
发表于: 2026-4-26 21:59 1947

[原创]某谷米APP 请求接口sign值生成流程分析

2026-4-26 21:59
1947

地址:4oCLaHR0cHM6Ly9xaWd1bWkuY29t

对我这种新人很友好的一个逆向,顺便练练so逆向,算是新手村级别了

首先,抓不到包。

发现检测方式是NetworkSecurityTrustManager.checkPins,结合okhttp的一些检测:

一段frida脚本献上,spawn模式注入,直接干废

然后就可以开始寻找sign算法了。首先我们会想到直接hook messagedigest算法,但是很遗憾,这么一hook下来什么都找不到。静态分析搜索sign,找到一个请求拼接的函数。混淆的很气人,全部都是o,O,0三个字符,难以分辨。找到一个okhttp拦截器。smali还原后大概如下。这个包com.uxin看起来像个第三方sdk,但是实际上是他们自家的东西。

发现了sign字段的添加处。顺藤摸瓜,sign的函数找出来!

由construct可知这里进入了native层,其实我对so层逆向不太懂。先hook拿个sign的示例出来。

这个hook,卡拦截器上,直接拿到原始输入map和输出的sign。我给的示例,这应该是一个统计接口,也可以得知通向服务器的所有需要sign的请求都在此被签名。

本来打算直接unidbg了,但看sign出来应该是个md5,整个签名流程应该也没多复杂,ida,启动!

前面的加密流程,应该是对这个函数进行调用。首先我们要知道:EncodeTool1 是什么算法,名字像是 MD5/SHA/HMAC 的封装,看起来sign出来很md5,但万一是魔改算法呢?要看看情况。

注意到:

3614090360 = 0xD76AA478 ✅ MD5 Round1 第1个常数

3905402710 = 0xE8C7B756 ✅ MD5 Round1 第2个常数

好,不用往下看了,应该是md5,没啥问题。


得到这个maptoquery后,map拼接的方式也就出来了。

salt在哪里?

可恶!这一段卡我好久!!!

_encodedsalt点开可以获得一个字符串。本来想ida神力,这次出问题啦!

这里面哪有啊?一看ref是签名的globalvarinit,需要去找那个函数

看中间的adrl,有个salt!直接拼接美滋滋!

不对!生成的sign有问题!

第一次做的时候,我并没有注意这个小小的玩意。

直到sign生产出来用不了,我才发现,我去还有个这函数!不多说了,ida双击!

这段代码的逻辑看似简单:遍历输入字符串 text 的每一个字符:


[培训]《冰与火的战歌:Windows内核攻防实战》!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 104
活跃值: (8407)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
tql
2026-4-28 10:40
0
游客
登录 | 注册 方可回帖
返回