微信小程序源码获取反编译

准备工作

  1. node.js运行环境

    • 如果没有安装nodejs,请先安装一下: 下载地址
    • Mac 上安装命令
      • brew install node
  2. 反编译的脚本

    • 地址:wxappUnpacker

    • 依赖

      • 这些 node.js 程序除了自带的 API 外还依赖于以下包:
        cssbeautify、CSSTree、VM2、Esprima、UglifyES、js-beautify

      • 您需要安装这些包才能正确执行这些程序,为了做到这一点,您可以执行npm install;另外如需全局安装这些包可执行以下命令:

            npm install esprima -g
            npm install css-tree -g
            npm install cssbeautify -g
            npm install vm2 -g
            npm install uglify-es -g
            npm install js-beautify -g
            npm install escodegen -g
        
  3. 安卓模拟器(要求自带root权限)

    • 我使用的是 网易MuMu ,用来获取小程序源文件

    • 搜索 RE文件管理器和微信,分别进行下载

使用安卓模拟器获取到.wxapkg文件

  1. 打开应用中心,搜索 RE文件管理器和微信,分别进行下载

    微信小程序源码获取反编译_第1张图片
    image
  2. 打开微信,输入帐号进行登录,登录成功后,点击发现,点击 “小程序”

    微信小程序源码获取反编译_第2张图片
    image
  3. 搜索ofo小黄车

    微信小程序源码获取反编译_第3张图片
    image
  4. 点击ofo小黄车官方版本

    此页面可能会打不开,可能是模拟器的问题,但是没关系,小程序文件已经下载到本地了。

    微信小程序源码获取反编译_第4张图片
    image
  5. 打开RE文件管理器

    • 具体目录位置:

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

      微信小程序源码获取反编译_第5张图片
      image
  6. 鼠标单击长按,右边会出现一个选项

微信小程序源码获取反编译_第6张图片
image
  1. 压缩成功后,选择查看,会进到查看目录,看到刚刚压缩的zip文件

    微信小程序源码获取反编译_第7张图片
    image
  2. 鼠标长按此文件,右边选择发送,通过微信发送给对应的好友,不能直接拷贝到自己电脑上,只能通过微信接收的方式。

使用反编译脚本解包 wxapkg

  1. 打开终端,用git下载代码

     git clone https://github.com/qwerty472123/wxappUnpacker.git
    
    image
  2. 安装依赖,安装之前需要安装Node环境

        cd wxappUnpacker
         
        npm install esprima
        npm install css-tree
        npm install cssbeautify
        npm install vm2
        npm install uglify-es
        npm install js-beautify
        npm install escodegen
    
  3. 反编译 .wxapkg 文件

    node wuWxapkg.js [-d]

  • 例如: 反编译的文件 _-1050685970_76.wxapkg 已经解压到了/Users/Rain/Desktop目录下,那么就输出命令

    ​ node ./wuWxapkg.js /Users/Rain/Desktop/_-1050685970_76.wxapkg

    微信小程序源码获取反编译_第8张图片
    image
  • 反编译脚本就能一步将.wxapkg 文件还原为微信开发者工具能够运行的源文件, 目录地址和你反编译的文件地址是一样的

    微信小程序源码获取反编译_第9张图片
    image
  1. 然后在微信开发者工具新增项目即可打开

    微信小程序源码获取反编译_第10张图片
    image

以上,大功告成!

总结

本文详细分析了 .wxapkg 解包后的各文件结构,并介绍了如何通过脚本“一键还原”得到任意小程序的源码。

当前反编译工具不支持分包,如在反编译过程中有报错 请尝试使用参考 支持分包的wxappUnpacker

对于一些简单的,且使用微信官方介绍的原生开发方式开发的小程序,用上述工具基本可以直接还原得到可运行的源码,但是对于一些逻辑复杂,或者使用 WePYVue 等一些框架开发的小程序,还原后的源码可能会有一些小问题,需要我们人肉去分析解决。

你可能感兴趣的:(微信小程序源码获取反编译)