本帖最后由 h4ckm310n 于 2020-1-19 13:34 编辑
之前兼职做外包,负责甲方小程序的运维,然后发现他们木有源码,没见过这么操蛋的情况……于是我就尝试对小程序进行逆向,这里分享一下我的过程。
一、从手机中提取出wxapkg文件
iOS端需要越狱,安卓端需要root。
以安卓为例,进入以下目录:
/data/data/com.tencent.mm/MicroMsg/(一长串字符串)/Appbrand/pkg
可以找到wxapkg文件,把它提取到电脑上。
二、准备解包工具
首先下载工具:
https://github.com/qwerty472123/wxappUnpacker/tree/master
安装node,并且安装这些依赖:
cssbeautify、CSSTree、VM2、Esprima、UglifyES、js-beautify
安装命令为npm install [依赖包]
修改wxWxss.js文件中的runVM方法:function runVM(name,code)
{
let wxAppCode={},handle={cssFile:name};
let gg = new GwxCfg();
let tsandbox ={
$gwx:GwxCfg.prototype["$gwx"],
__mainPageFrameReady__:GwxCfg.prototype["$gwx"],
__vd_version_info__: GwxCfg.prototype["$gwx"],
__wxAppCode__:wxAppCode,
setCssToHead:cssRebuild.bind(handle)};
let vm=new VM({sandbox:tsandbox});
vm.run(code);
for(let name in wxAppCode)
if(name.endsWith(".wxss"))
{
handle.cssFile=path.resolve(frameName,"..",name);
wxAppCode[name]();
}
}
不进行这一步的话,提取不出wxss文件。
三、运行解包工具
cd到解包工具目录,运行命令:
node wuWxapkg.js [wxapkg文件名]
运行完毕后可以看到解包后的源码目录。
原文来自我的个人网站:https://ssjgoku.win/?p=365 |