前期准备工作
1、电脑登录微信客户端,找到设置中的的文件管理位置,一般该地址默认存储在C盘,为了给C盘减负,这边我将地址改存在D盘。
2、在pc上点击一个小程序,尽可能多的点击小程序中的页面,使本地生成一个小程序包。这里面都是小程序加密文件,
我们需要解密的文件为App.wxapkg
3、安装逆向工具、解密工具
下载地址:微信小程序逆向工具
(1)解密工具:UnpackMiniApp
wxpack文件夹是个空的,主要用于解密后的文件存放。
(2)逆向工具:wxappUnpacker
开始解密
加密小程序包需要到找到微信的文件管理位置中,找小程序包的App.wxapkg
文件。解密成功后将显示
解密后的文件可以在wxpack
中查看:
开始逆向
1、找到逆向工具文件夹下,输入cmd
,打开命令面板:
2、安装依赖:
// 可以选择一个一个安装也可以直接一次性全装
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify
或
npm install esprima css-tree cssbeautify vm2 uglify-es js-beautify
3、安装结束后在cmd中输入:
bingo.bat 主包路径(可以选择直接拖入)
遇到的问题
问题一:逆向时解包错误
这个是反编译错误,编译成了子包,需要重新编译另一个包。
问题二:_typeof3 is not a function
解决方案:将@babel\runtime\helpers\typeof.js,typeof.js 文件全部替换成以下代码。
function _typeof2(o) {
"@babel/helpers - typeof";
return (_typeof2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
return typeof o;
} : function(o) {
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
})(o);
}
function _typeof(o) {
return "function" == typeof Symbol && "symbol" === _typeof2(Symbol.iterator) ? module.exports = _typeof = function(o) {
return _typeof2(o);
} : module.exports = _typeof = function(o) {
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : _typeof2(o);
}, _typeof(o);
}
module.exports = _typeof;
问题三:跨域问题
直接去开发工具上勾选不校验合法域名、web-view(业务域名)、TLS版本以及HTTTPS证书
参考文章:
https://juejin.cn/post/7312678013559636006
https://cloud.tencent.com/developer/article/2245261