文章目录[隐藏]
js/小程序逆向 1 / 7
仅供学习研究 。请勿用于非法用途,本人将不承担任何法律责任。
前言
本次目标小程序,某盛优选
具体的小程序反编译流程这里就不说了,有啥问题可以加博主一起讨论
分析请求包
打开小程序,跟 charles 开始抓包,这里我们抓分类列表页的数据包
请求的路径是 https://mall.xsyxsc.com/user/window/getProducts/v4
请求头里有个 hash
值 Api-Sign
,下面直接去反编译小程序分析 JS 代码
这里可以看到 请求体里 还有个 bb
后面会说到
反编译分析 js
反编译成功之后导入,微信开发者工具,就是上图这种 (这里说明一下,有些小伙伴导入的时候可能会报一些,插件错误,或者语法错误之类的,百度一下就能找到解决方案了哈),我这个是修复成功之后的代码,可以正常运行
然后全局搜索 api-sign
定位到这里 T["Api-Sign"] = (0, u.default)(O + T["Api-Timestamp"] + s.default.httpSlot))
调用了 u.default
函数有三个参数 O
在上面有定义,暂时不知道是什么稍后,动态调试一下就知道了,T["Api-Timestamp"]
就是请求头里的时间戳了,s.default.httpSlot
这个应该是盐值,可以全局搜索一下
是个固定值,暂时就不管它了,先动态调试看看 O
是个什么玩意
动态调试 JS
打开调试器,全局搜索 T["Api-Sign"] = (0, u.default)(O + T["Api-Timestamp"] + s.default.httpSlot))
,然后下断点
首页的分类随便点击一个,成功断下来
这里输出相关的变量值,可以看到 O
最后就是 请求的 fromdata
体
再往下就是字符串的拼接了,然后调用 u.default 就是 md5
进行 hash
计算,结果是 5cfd32a50143ca6c571fe2660b586231
,然后在使用 python
进行 md5
计算
结果也是没问题的,在写个 demo
测试逻辑是否正确
数据也是正常请求到了,没啥问题