文章目录[隐藏]
js/小程序逆向 4 / 7
仅供学习研究 。请勿用于非法用途,本人将不承担任何法律责任。
前言
某货优选小程序
sign
参数分析
charles 抓包
就是这个 sign
参数,下面来反编译小程序分析 js
反编译小程序
进入到手机的
/data/data/com.tencent.mm/MicroMsg/
目录
这里的每个 hash id
都是一个小程序,需要自己去找到目标小程序的,找到之后在进入到 hashid/appbrand/pkg
目录,里面就是小程序包了,复制到 sdcard
目录,使用 adb pull
命令,拉下来
这里推荐个小程序解包工具: https://github.com/xuedingmiaojun/wxappUnpacker
依赖包安装好之后,使用 onekey.sh 脚本指定主包可以自动解子包,不需要在使用 -s 一个一个解包了
// 例如
./onekey.sh ~/Desktop/wpkg/yunhuoyouxuan/_-979166188_833.wxapkg
Tips: 反编译完成之后使用小程序开发者工具打开
微信开发者工具
全局搜索 sign
有两个结果,随便点进去一个,调整下格式,简单分析下代码
先调用
n.sortAscii
函数返回值加上&secretKey=
+t.globalData.secretKey
在调用i.default
函数
n.sortAscii
首先来看下 n.sortAscii
函数的参数,g
就是请求体,这里是取出 body
的 param
参数
也就是这个
参数 e
是个 json
获取 keys
在进行排序,key value
使用 =
拼接,最后使用 &
符号,总体逻辑就是排序转成 url
参数
i.default
这个就简单了,通过文件名称,或者常量都可以确定是 md5
Tips:加密逻辑就分析完了,body.param 排序转 url 参数,拼接上 secretKey,在进行 md5 下面来测试一下
python 测试
测试结果跟抓包的一样