小程序反编译

记录一下小程序源文件包的获取过程

1.所需环境

  1. re文件管理器
  2. 反编译脚本wxappUnpacker微信小程序反编译自动化工具
  3. node.js 安装

2.找到小程序的源文件包

/data/data/com.tencent.mm/MicroMsg/{{一串32位的16进制字符串文件夹}}/appbrand/pkg/

文件夹 会有很多.wxapkg类型的文件,都是微信小程序的包

3.反编译

node .wuWxapkg.js D:\_-xxxxxxxx_xx.wxapkg  

如果出现某些module未安装可以用npm install xxx安装

如果遇到 __vd_version_info__ is not defined,修改wuWxss.js文件(亲测无效,建议直接使用上文的exe文件)

源文件:

function runVM(name,code){
    let wxAppCode={},handle={cssFile:name};
    let vm=new VM({sandbox:Object.assign(new GwxCfg(),{__wxAppCode__:wxAppCode,setCssToHead:cssRebuild.bind(handle)})});
    vm.run(code);
    for(let name in wxAppCode)if(name.endsWith(".wxss")){
        handle.cssFile=path.resolve(frameName,"..",name);
        wxAppCode[name]();
    }
}

改为:

function runVM(name,code){
    let wxAppCode={},handle={cssFile:name};
    let gg = new GwxCfg();
    let tsandbox ={$gwx:GwxCfg.prototype["$gwx"],__mainPageFrameReady__: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]();
    }
}

4.调试

  1. 打开微信开发者工具,本地调试
  2. 关闭ES6ES5配置
  3. 不校验域名和证书
焚膏油以继晷,恒兀兀以穷年。
原文地址:https://www.cnblogs.com/mangM/p/14675001.html