首先声明: 此次逆向Js只为学习交流使用,切勿用于其他非法用途,关键代码均打码
最近接触的微信小程序较多, 其中有些加密,和遇到的一些问题,和大家交流一下, 本章节主要讲述小程序逆向js的代码一个过程,希望可以帮助的大家。
用到的环境:
- 微信开发者工具
- wxappUnpacker
- node环境
- adb
编译阶段:
- 首先找到小程序的安装包,可以找个手机,点开小程序后,找到手机文件目录, 一般是这样的目录。
/data/data/com.tencent.mm/MicromMsg/c6dxxxxxxxxxxxxx/appbrand/pkg/*.wxapkg - 现在把这些包从手机里导出来,进行解析,用adb进行导出, 如果不知道哪个文件可以批量导出(博主这只有两个文件 可以批量导出,如果很多wxapkg建议清理一下,重启目标小程序。)
adb pull /data/data/com.tencent.mm/MicroMsg/*******/appbrand/pkg/
有些手机可能会报权限问题: adb root && adb remount 增加权限
这时候就会在当前目录生成一个pkg文件,里面放的就是wxapkg文件。 - 使用wxappUnpacker把刚才导出来的两个wxapkg进行解压。
node wuWxapkg.js ../mryx/pkg/pkg/_1123949441_403.wxapkg
但是解压到第一个包的时候包了一个如下错误:
大概意思是说这是一个pkg的子文件,并不是一个完整的小程序, ok,那不管,接着解析另一个
node wuWxapkg.js ../mryx/pkg/pkg/_656941515_671.wxapkg
现在显示第二个wxapk包编译完成, 如果出现上图,那么就是编译成功,会把解析的包生成一个项目文件,这个项目文件会放在wxapkg同目录下。
现在看到有两个文件,但是_1123949441_403刚才解析的时候不是一个完整项目,那我们直接看_656941515_671这个文件,用vscode打开(用啥都行,喜欢就好。)
而且代码可读性比较强,显然这个小程序是没有经过混淆的(往后也会分享一些怎么处理混淆后的js代码,增加可读性。)
sign加密
目前这个程序的逆向就完成,代码就编译出来了,也可以从代码找到一些加密方法。但是目前还有一个问题,就是不能进行调试,无法向pc端那样动态调试,和函数的输入输出,这样会增加破解难度,也非常耗时间。所以咱们下一篇会分享 使用微信开发者工具 对微信小程序进行动态调试,代码debug, 看函数的输入输出。
声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/221820.html