微信小程序> 记一次微信小程序源码反解包

记一次微信小程序源码反解包

浏览量:549 时间: 来源:fplei

1 安装Nodejs
   一 下载安装包:https://nodejs.org/en/download/

安装完成后在安装目录下新建两个文件夹:node-cachenode-global(这是用来放npm全局模块的安装目录,也可以放到其他地方。)

二 配置环境变量

变量名:NODE_HOME变量值(你的安装目录):C:Program Filesodejs编辑Path变量,追加:    %NODE_HOME%    %NODE_HOME%ode-global

三 运行下面的命令

npm config set prefix "C:Program Filesodejsode-global"    npm config set cache "C:Program Filesodejsode-cache"

2 下载解包脚本https://github.com/qwerty472123/wxappUnpacker
小程序
脚本需要配合一下js脚本才能运行,因此使用npm命令安装依赖:

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

3 .环境准备完成以后,再来看看小程序安装包(微信版本为6.6.6)

小程序从开发到发布经历的流程:开发—测试-体验版本-push微信服务器发布。

因此发布的微信小程序源码是在微信的服务器上,但是小程序在被用户搜索到以后点击进入小程序是肯定不会运行服务器上的云代码的,因此肯定会下载一份代码到本地。

猜测运行大致流程应该是:用户打开小程序—》微信下载压缩包—》微信解压—》js解释代码—》运行代码。

那么问题来了,微信下载下来的小程序源码在哪儿呢?
压缩包在内部存储下,需要Root权限才可重点内容以看到,所在目录:

/data/data/com.tencent.mm/MicroMsg/xxxxx/appbrand/pkg/

小程序

目录下可能会有很多文件,每个文件以xxx.wxapkg为后缀的都是一个小程序压缩包,文件名字比较乱是一串MD5值

需要确定哪个是我们需要反编译的小程序,我们只需要在微信应用内先打开小程序,home键退出,用RE文件管理器进去看看,哪个文件时间是最新的,哪个就是我们需要解包的程序代码。
关于小程序.wxapkg

•wxapkg是一个二进制文件,结构是微信自定义。•关于.wxapkg的详细内容可以参考http://lrdcq.com/me/read.php/66.htm•这里可以使用已经Root的手机或者是android模拟器来运行小程序也可以获取到。

4 使用脚本解包二进制代码,还原微信开发工具可以运行的源码
一,  把小程序压缩包从手机复制一份出来【可以先使用RE管理器找到文件,然后移动到SD卡根目录,在使用命令 adb pull /sdcard/xxx.wxapkg C:UsersxxxDesktopunpacker 复制到桌面文件夹中方便操作】

二,  Cmd进入下载好的脚本目录
小程序
我把小程序压缩包放在这里:
小程序
三使用命令:node wuWxapkg.js 需要反编译文件全路径

如:node wuWxapkg.js C:UsersxxxDesktopunpacker sft.wxapkg

解包成功,会在小程序压缩包同级目录下生成文件名一样的目录,这就是项目源码:
小程序
打开微信小程序开发者工具打开项目即可运行:
小程序

目前小程序内核最新为2.2.1,使用微信应用版本为V6.6.6.至少这之前的版本运行小程序使用脚本大部分程序都可以轻松获取到小程序源码。也存在一些特殊情况:
小程序

 

实际上,小程序只是很简单的将图片、js和json文件压在一起,而压制的过程就是Wxml - Html、 Wxml - JS、Wxss - Css,转换后文件二进制格式跟后缀名为wx二进制格式完全一致。

非常恐怖,目前微信官方没对该情况改进处理,假设某个版本小程序代码压缩格式变更或者解释代码时使用更安全的加密方式,该方法可能会失效。

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎