微信小程序-如何反编译小程序

0x01 前提

1.安卓模拟器/ROOT安卓手机
2.adb调试工具
3.wxappUnpacker解包工具(node.js环境)

0x02 提取小程序

小程序路径:

Android:/data/data/com.tencent.mm/MicroMsg/{⽤户ID}/appbrand/pkg/*.wxapkg
Windwos:(C:\Users{用户ID}\Documents\WeChat Files\Applet{小程序ID}_APP_.wxapkg

下面以安卓为例
adb shell #adb调试进入设备shell
cd /data/data/com.tencent.mm/MicroMsg/{⽤户ID}/appbrand/pkg/

image-20220113150813561

后缀名为 *.wxapkg 是微信小程序的原包,在提取小程序时先把该目录下的文件全部删除,然后再重新进入特定小程序,则该目录下的文件只存在了特定小程序的包。

image-20220113151526249

通过adb pull 命令将pkg目录下的文件提取到PC的目录下

image-20220113165656956

提取出的小程序到了当前pkg目录下

image-20220113165848393

Windows下的小程序包裹为加密,可通过PC微信小程序包解密工具C#版 解密后提取小程序原包。

0x03 对小程序进行反编译

不讲原理,仅讲实践,使用工具对提取的小程序进行解包。
https://github.com/gaocaipeng/wxappUnpacker

安装依赖

npm install
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify

反编译

./bingo.sh wxapkg/_-123123131.wxapkg

image-20220114142019197

通过导入项目到微信开发者工具中,即可对小程序进行调试。

image-20220114145041439

可通过搜索 key、secret、access、crypto、https: 、等关键字从小程序中搜索可利用信息。

0x04 参考

微信开发者社区 https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html

反编译小程序 https://segmentfault.com/a/1190000040325909


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!