反汇编小程序环境准备
1、安装Nodejs
一 下载安装包:Download | Node.js
二 配置环境变量
变量值(你的安装目录)
2、下载解包脚本:GitHub - xuedingmiaojun/wxappUnpacker: 小程序反编译(支持分包)
解压
安装
npm install (npm是node工具自带的,设置完环境变量,直接使用,或者打开cmd拖node.cmd后面再跟install
环境依赖(在解压的wxappUnpacker-master项目下启cmd输命令安装即可
npm install esprima npm install css-tree npm install cssbeautify npm install vm2 npm install uglify-es npm install js-beautify
3、小程序执行流程
小程序从开发到发布经历的流程:开发—测试-体验版本-push微信服务器发布。
因此发布的微信小程序源码是在微信的服务器上,但是小程序在被用户搜索到以后点击进入小程序是肯定不会运行服务器上的云代码的,因此肯定会下载一份代码到本地。
猜测运行大致流程应该是:用户打开小程序 -> 微信下载压缩包 -> 微信解压 ->js解释代码->运行代码。
那么问题来了,微信下载下来的小程序源码在哪儿呢?
压缩包在内部存储下,需要Root权限才可重点内容以看到,所在目录:
/data/data/com.tencent.mm/MicroMsg/xxxxx/appbrand/pkg/
此处我选择用夜神模拟器进行尝试,因为要获取root权限,要进行设置一下
我们说过小程序一般会从服务器上下载到目录
/data/data/com.tencent.mm/MicroMsg/xxxxx/appbrand/pkg/
并且需要root权限才能访问,因此我们必须设置要root,其次我们还需要个RE管理器
当然访问要访问微信小程序,所以需要一个微信
4、反编译
然后进入目录 找到微信小程序的wxapkg进行压缩,放到电脑进行反汇编(可以根据打开的日期和时间,判断哪个包是小程序的
/data/data/com.tencent.mm/MicroMsg/xxxxx/appbrand/pkg/
已经把wxapkg放到了电脑上,我们接下来可以进行反汇编了(压缩包可以按住发送到微信,wxapkg不能直接发送
进入wxappUnpacker 目录然后进入命令行
node wuWxapkg.js 需要反编译文件全路径
node wuWxapkg.js D:\xxxxx\xxx\xxx.wxapkg
然后会在当前目录下生成(建议创建一个文件夹,启cmd执行上面命令
5、导入微信开发者工具(可有可无,看个人需求
导入微信开发者工具就能获取所有源码了,还能看到ui界面
6、小程序的安全防御
- 源码安全:使用代码混淆和类似Webpack打包工具。在发布小程序时在设置中勾选“上传代码时自动压缩混淆”和“上传时进行代码保护”。
- 接口安全:推荐使用AES+RSA的方式对数据进行加密,并且结合时间戳对数据包进行签名。
- 后台安全:绝不使用弱口令;及时升级插件;后台地址不对外访问。
- 平台安全:微信开发平台账号的密码定期更换。