有偿请教 http 验签的问题

118 天前
 whynot22
我在抓一个 app 的请求的时候,请求时有个签名 sign
然后随着时间戳 timestamp 的变化,这个签名 sign 也会不一样
/comp/visitor/user/apiGetVisitorDynamicNew?userID=4902114&page=1&sign_type=MD5&version=8.11&sign=78857f5669c12ad23d8cb977ef8c7ec6&timestamp=1728033620686&topicType=A

/comp/visitor/user/apiGetVisitorDynamicNew?userID=4902114&page=1&sign_type=MD5&version=8.11&sign=d2932adeb333c218716d2551e75e1667&timestamp=1728033307454&topicType=A

/comp/visitor/user/apiGetVisitorDynamicNew?userID=4902114&page=1&sign_type=MD5&version=8.11&sign=0aa9a55e9e56e9b4cf4c153a668cbc6f&timestamp=1728033619243&topicType=A

我想知道这个 sign 是怎么算出来的,能不能找到规律
提供思路给我验证成功的,我愿意付出 200 元烟钱
感谢各位大神
1846 次点击
所在节点    外包
18 条回复
Helsing
118 天前
反编译 app 找到算法代码
z7356995
118 天前
我以前的思路是这样,把 rsa 的公钥存在前端,用 js 签名,然后,后端用私钥验证
whynot22
118 天前
@Helsing 感谢回复,我尝试了找了安卓的下载包,用 apktool 反编译之后,把 dex 转化之后只有很少的 3 个类,没有相关信息
whynot22
118 天前
@z7356995 感谢回复,如果是这样的话只能在 app 里找对应的公钥了,开始 apk 反编译找信息对我来说有点难
SayHelloHi
118 天前
可以在某鱼上面 找找 有人接反编译的活
z7356995
118 天前
他这个 sign_type 是 md5 估计都没有公钥,就 md5 加密一下,或者先加点盐 再 md5 一下
z7356995
118 天前
或者用时间戳当盐
qq240316
118 天前
@z7356995 #7 是的 我刚开始也是这么想的,尝试了排序 md5 ,一直试不出来,不知道是用什么当盐的
qq240316
118 天前
@SayHelloHi 感谢提供思路
Lightbright
118 天前
@whynot22 #3 这不是靠猜的,xd ,万一人家是加了某个固定的盐值呢,dex 找不到的话,建议看看有无 navite 的 so 代码文件
qinxi
118 天前
通常是 MD5(params.map(“key=value”).sort().join(&)+”key=xxx”), 反正还是要反编译找 key 以及 key 的参数名。甚至拼接方式不一定就是上面写的
qinxi
118 天前
@qinxi key 拼接前面忘加&了
v2yllhwa
118 天前
留个联系方式聊聊
kk2syc
118 天前
很少的三个类,加壳了都看不出? 200+个 0 估计有人接
zbinlin
118 天前
这种一般 app 都有一个密码/密钥来对参数 hash 出来的。
hadesy
118 天前
APK 放上来
whynot22
118 天前
在闲鱼上找了人花了 250 元找出盐了,感谢各位
说 apk 是用 360 加壳了,卖家似乎很容易就从内存中 dump 出来了
不知道用的是什么工具
liangjx
117 天前
我们之前是 hook 网络请求的系统函数,debug 一下就可以找到了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1077752

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX