逆向微信小程序之通讯数据签名

一.这里主要使用微信小程序开发者工具,后面说到怎么用

官网下载地址:

https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

二.使用adb 获取微信小程序包,并解包小程序。这里用到

https://github.com/jozxing/wxappUnpacker

三.分析小程序通讯签名方法

关键字:sign、sort、还需要使用console.log(“标识….”,打印的log变量或者函数)输出调试

开始:

1.使用adb登陆手机后,输入 su 进入超级管理员状态,然后进入/data/data/com.tencent.mm/MicroMsg/ 目录,里面会有一些已经存在32位字符串的目录,这些是其他或者使用过的小程序目录,为了方便调试目标小程序,先把这些文件删除。

2.在微信里搜索对应的小程序名称,然后进入使用。此刻,你使用ls -la命令再看一下/data/data/com.tencent.mm/MicroMsg/这个目录,就会多出一个新的32位字符串的目录,进去,在这个 /appbrand/pkg目录下,就是对应的小程序包了。有些小程序分主包和子包,所以,还需要分辨一下,主包先加载,而且有完整的小程序目录结构。

3.这里把 *.wxapkg 的文件cp 到/data/local/tmp 并赋权为777,要不然adb pull的时候提示权限太小。

4.adb pull把小程序 *.wxapkg文件到桌面以后,使用wxappUnpacker解包。
命令:./bingo.sh 1920095075_3.wxapkg  
解包后会生成一个对应的文件夹。如果存在子包,这需要使用命令
./bingo.sh 1920095075_3.wxapkg  -s=xxxxxxxxxxxx.wxapkg 即可。如果不知道子包还是主包,那就都解包一遍,会有错误提示的。一般一个微信小程序包不多,也就五六个包。

5.解完包的目录结构差不多是这样子的

6.使用微信小程序开发者工具导入这个目录,即可实现调试了。前提是需要你用微信扫码登陆。

当然还需要设置一下这里

防止报错等等….之后就是像调试网页页面一样,调试即可了。

找签名方法,研究通讯方式等等,找到原本的接口,然后在代码里搜索,查看具体的通讯和加密方式。通过关键字sign、sort、md5等等查看具体的代码实现,debug逐步调试….

整个过程比较枯燥,需要关联被小程序混淆后的函数,美化被压缩过的js代码console.log(“标识”,需要打印的函数或者变量)打印各种输出调试等等…. 破解和调试接口,就是时间问题了。