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

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

二 配置环境变量

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

三 运行下面的命令

npm config set prefix "C:\Program Files\nodejs\node-global"npm config set cache "C:\Program Files\nodejs\node-cache"

2 下载解包脚本https://github.com/qwerty472123/wxappUnpacker

脚本需要配合一下js脚本才能运行,因此使用npm命令安装依赖:

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

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:\Users\xxx\Desktop\unpacker 复制到桌面文件夹中方便操作】

二, Cmd进入下载好的脚本目录

我把小程序压缩包放在这里:

三使用命令:node wuWxapkg.js 需要反编译文件全路径

如:node wuWxapkg.js C:\Users\xxx\Desktop\unpacker\ sft.wxapkg

解包成功,会在小程序压缩包同级目录下生成文件名一样的目录,这就是项目源码:

打开微信小程序开发者工具打开项目即可运行:

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

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

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

记一次微信小程序源码反解包相关推荐

  1. 微信小程序源码反编译

    @IT猴~ 写有用的文章 微信小程序源码反编译 亲测有效,能返编译市面上百分之90的小程序.准备: 1.夜神模拟器 2.node.js 3.微信 夜神模拟器 夜神模拟器官网: https://www. ...

  2. php qcloud sdk weapp_微信小程序源码+PHP后台

    [实例简介] 开源,可部署使用,学习好资料.包含微信小程序客户端还有后台PHP源码. [实例截图] [核心代码] 微信小程序源码PHP后台 └── 微信小程序源码+PHP后台 ├── __MACOSX ...

  3. 修复版超强大微信小程序源码-内含几十款功能王者战力查询

    介绍: 这是一款特别强大的一款微信小程序源码,初步算了一下,该款小程序目前包含了几十个功能. 具体功能如以下: 游戏扫码登录: 王者战力查询: 改名生成(多种生成方式): 头像框制作(N款模板): 王 ...

  4. 只需两步快速获取微信小程序源码

    第一次在掘金这样高大上的社区写文章,忐忑地敲下我获取小程序源码过程中的经验分享. 最近在学习微信小程序开发,半个月学习下来,很想实战一下踩踩坑,于是就仿写了某个小程序的前端实现,过程一言难尽,差不多两 ...

  5. 反编译获取线上任何微信小程序源码(转)

    看到人家上线的小程序的效果,纯靠推测,部分效果在绞尽脑汁后能做出大致的实现,但是有些细节,费劲全力都没能做出来.很想一窥源码?查看究竟?看看大厂的前端大神们是如何规避了小程序的各种奇葩的坑?那么赶紧来 ...

  6. 云开发表情包制作神器微信小程序源码下载,支持各种自定义

    该款小程序是一个表情包制作 内容毕竟丰富,另外自定义制作方面也是特别的自由 支持自主上传图片,自定义文章,另外拥有多种素材模板以供选择 这是一款云开发的小程序,但是安装还是挺简单的 搭建教程: 首先使 ...

  7. 【小程序源码】云开发表情包制作神器微信小程序源码下载,支持各种自定义

    该款小程序是一个表情包制作 内容毕竟丰富,另外自定义制作方面也是特别的自由 支持自主上传图片,自定义文章,另外拥有多种素材模板以供选择 这是一款云开发的小程序,但是安装还是挺简单的 搭建教程: 首先使 ...

  8. 宝宝起名神器微信小程序源码下载支持多种流量主模式

    2022年马上到了,还不知道怎么给虎宝宝取名字嚒 那么这款小程序源码就可以帮到你了 这款小程序支持输入姓氏自动起名,不满意还可以点击换一换来找到满意的 支持起两个字或者三个字的名字 另外小编也给该款小 ...

  9. 小程序源码:宝宝起名神器微信小程序源码下载-多玩法安装简单

    这款小程序支持输入姓氏自动起名,不满意还可以点击换一换来找到满意的 支持起两个字或者三个字的名字 另外小编也给该款小程序添加了几个流量给大家 下面就来看看小编的测试演示图吧! 小程序源码下载地址:小程 ...

最新文章

  1. Selenium3+python自动化009- 截图
  2. DarkTrack 4 Alien Version Released RAT 下载地址视频教程
  3. javascript按字节截取标题中字符串
  4. Python函数(2)
  5. Android获得图片资源的三种方式
  6. 程序员幽默趣图(动物篇)
  7. 通过串口打印--超声波测距模块测得距离
  8. T-SQL逻辑处理之表运算符
  9. ffmpeg处理RTMP流媒体的命令 发送流媒体的命令(UDP,RTP,RTMP)
  10. 在Blazor中构建数据库应用程序——第6部分——向天气应用程序添加新记录类型及其UI
  11. 通过JCONSOLE监控TOMCAT的JVM使用情况
  12. jenkins教程菜鸟_jenkins 入门教程(上)
  13. 7. 敏捷软件开发框架 - 极限编程XP
  14. 【程序源代码】微信公众号开发框架
  15. 如何看linux网络慢,Linux下网速慢的问题
  16. 用python画蜡笔小新_用python画的蜡笔小新
  17. Java开源文件病毒扫描_使用多种反病毒引擎扫描文件
  18. 西人应该骄傲,全国对不起山西
  19. 以太网PHY寄存器分析
  20. VB.net小技巧——VB中利用TreeView控件和Box控件做知识备忘

热门文章

  1. React的React.StrictMode
  2. @Scheduled注解与参数
  3. 界面(1):对话框和菜单 打印和按钮等杂项
  4. 产品经理入门:一、产品、产品经理
  5. 单片机的AVCC、AVSS、DVCC、DVSS引脚有何区别?
  6. 初学实体框架EF(Entity Framework)
  7. CloudBu面试题
  8. 串的定长顺序存储结构|C++实现
  9. Ubuntu查看主机名和修改主机名
  10. 后渗透篇:COM劫持及加载技术