微信小程序反编译

最近在整理过往项目经历时,发现之前误删了社会实践时个人开发的韭等商城微信小程序项目源码。在查阅相关资料后,通过模拟器+反编译文件得到项目过程,方法如下:


反编译

1. 安装环境

分别配置nodejs + 微信开发者工具环境
// nodejs下载地址:
https://nodejs.org/zh-cn/download/
// 微信开发者工具下载地址:
https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

2. 安装模拟器及相关程序

反编译须要获取小程序源文件。通过手机模拟器,可以在电脑上快速进行文件管理,同时便于设置root权限,操作更为方便。这里选用网易的mumu模拟器。
// mumu下载地址:
https://mumu.163.com/
下载安装后,须要安装微信和RE文件管理器,同时在应用程序右上角设置页面打开超级用户权限,用以后续获取小程序包。
qEOcxf.jpg
qEOsPI.jpg

3. 反编译

  • 3.1 获取小程序包

    在mumu模拟器中登录微信账号,打开所需要反编译的小程序。如图打开个人开发的小程序:韭等商城测试版。
    使用RE文件管理器,打开如下路径
/data/data/com.tecent/mm/MicroMsg/......./appbrand/pkg
// 	(.......目录名通常为较长数字和字母组成)
qEO6RP.jpg
在目录下可以发现众多.wxapkg文件,长按左键选中所有,在右上角点击压缩(微信无法发送程序包)并通过各种发送方式提取程序包至计算机。
qEOyGt.jpg
qEO2M8.jpg
  • 3.2 反编译程序包

# 1.下载反编译程序
git clone https://gitee.com/ksd/wxappUnpacker.git

# 2.安装依赖
cd wxappUnpacker

npm install
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify
qEORsS.jpg
qEOWqg.jpg
qEOhZQ.jpg
qEO5Is.jpg
反编译.wxapkg文件得到得到源码文件夹
node wuWxapkg.js <file>
qEO4aj.jpg

4. 导入小程序

使用微信开发者工具导入源码文件夹即可得到工程
qEOTGq.jpg

Tips

  • Error:

    反编译报错:Unexpected end of input
    qEOoin.jpg
  • Resolve

    修wuWxss.js文件代码( line.2 => line.3 )如下:
let vm = new VM({ sandbox: {}})
// pureData = vm.run(code + "\n_C");
pureData = vm.run(code + "}");
console.log("Guess wxss(first turn)...");

参考文档:

https://github.com/xuedingmiaojun/wxappUnpacker/issues/30