首先声明:本文章仅供学习之用,不可它用。

一、前言

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

反编译,其实还是简单的,要想拿到微信小程序源码,找到源文件在手机存放的位置就行,源文件拿到,用反编译脚本跑一下,微信小程序代码包里的所有文件、所有资源就出来了(除了project.config.json小程序配置文件)。拿到源码后,跑起来是能跑,但登录、授权等涉及到appid的功能是不能用的,因为被反编译小程序的服务端appid和你本地添加的不一样,这就是为啥拉下来的源码没有project.config.json文件的原因,项目中appid是配置在这个文件里,这里一定程度上保护原小程序。

二、所需工具

nodejs运行环境,这是反编译脚本所需运行环境。

nodejs下载与安装:

(2)、打开cmd,测试是否安装成功,在命令行输入node -v,如下: D:>node -v   结果:v12.11.1

用cd命令进入到你clone或者下载好的反编译脚本目录下,下载好后将wxappUnpacker.zip文件解压出来,这是GitHub上一位大神的杰作,找到了这个比较好用的,其他版本也可以。

3.夜神模拟器,地址:夜神模拟器

用来找寻微信小程序源文件,真机当然也可以,但麻烦,又是root权限,又是越狱的,夜神模拟器方便,直接在设置里就可以设置超级用户权限,超级权限拿到,就可以为所欲为了,通过下面这个RE文件管理器看到微信小程序源文件。

4.RE文件管理器(在模拟器内搜索安装或自动下载后导入到摸拟器安装)用来找寻微信小程序源文件。

三、编译流程

1.安装RE文件管理器

在模拟器内安装好RE文件管理器(可以在摸拟器上直接搜索“RE文件管理器”进行安装)。

2.获取超级用户权限

打开手机设置->找到超级用户->右上角三个小点点击一下,设置->点击‘超级用户访问权限',选择‘仅限于应用',这样超级用户权限就拿到了。

或者在首次打开RE文件管理器进入data文件夹时,摸拟器会显示超级用户请求,选择“永久记住选择”—>点击“允许”,即可获取超级用户权限。

3.打开需要反编译的小程序

打开微信,没有的在应用市场下载就行,打开想反编译的微信小程序,小程序打开后,可以切换到RE文件管理器去找源文件了。

这里有一个机制,当点开一个微信小程序,如果本地这个文件夹下找到即将运行的小程序,会从微信服务器下载到本地,在以后的某个时刻又运行这个小程序,运行时,微信服务器会通知有没有小程序新版本,如有新版本,会在后台静默下载,小程序继续运行,新版本要到下一次运行才会启用,这就是微信小程序的更新机制。

4.获取源文件

打开RE文件管理器,从根目录开始。/data/data/com.tencent.mm/MicroMsg/.../appbrand/pkg/,路径中有一段...,这里表示不确定具体一个,一般是很长的数字和字母组成的文件(如下图所示)

反正就在这个MicroMsg下的其中一个文件夹,紧接着会看到appbrand文件夹,如果这样那就找到位置了。

找到源文件后,长按左键 -> 点击右上角三个小点,打开菜单,选择‘压缩所选文件'->完成后,点击查看->长按,还是右上角,将压缩包从模拟器发送出来到电脑上,方式多种,随意。下图是以QQ方式发送。

5.下载反编译文件

从GitHub下载反编译文件后,在桌面就有了这样的文件夹结构nimi-yuan这个文件夹下这里放的是微信小程序源文件

lib这个文件夹下放的是反编译脚本

6.安装依赖包

cmd在终端进入到你刚刚下载下来的脚本目录下,依次安装以下依赖,全部安装完。

npm install esprima

npm install css-tree

npm install cssbeautify

npm install vm2

npm install uglify-es

npm install js-beautify

安装好依赖之后,就是最后一步了,反编译 .wxapkg 文件

例如:我有一个需要反编译的文件 _163200311_32.wxapkg 已经解压到了D盘根目录下,那么就输出命令

node .\wuWxapkg.js D:\_163200311_32.wxapkg

7.反编译完成

用node wuWxapkg.js filepath执行成功后,查看反编译成功后的文件夹,源码中除了project.config.json这个配置文件,其他的都有。导入项目后就可以看到效果了,期间可能会出现一些问题,需要调试一下。下图是编译成功后的截图。

四、结语

至此微信小程序的反编译过程就结束了,仅供学习之用,不可它用。由此可见微信小程序源码的安全性不好,过不久估计就不能这么干了,漏洞终究会被填补的。

到此这篇关于微信小程序反编译的实现的文章就介绍到这了,更多相关微信小程序反编译内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

java反编译微信小程序_微信小程序反编译的实现相关推荐

  1. 如何微信链接自定义_微信链接自定义

    微信在分享第三方网站是不显示缩略图和描述的,如下图所示 微信链接自定义_微信链接自定义 要解决这个问题必须调用微信JS-SDK接口,下面讲一下如何调用接口. 第一部分 准备步骤 注册微信公众号. 通过 ...

  2. 微信小程序反编译wxss文件缺失_微信小程序反编译~2020年

    摘要 安装wxappUnpacker小程序反编译工具并使用(2020.03) 关键词: 微信小程序反编译 wxss 介绍 上次分享了web前端爬取工具 ,那么这次也同样讲讲微信小程序反编译吧,对于像博 ...

  3. 小程序 微信统计表格_微信小程序简单的数据表格及查询功能

    简介: 此项目是一个前后端分离的小demo, 开发工具:idea+微信小程序开发工具 前端:界面布局样式和js的跳转 后端:依靠SpringBoot的业务逻辑层 项目的码云地址: 微信开发工具的使用和 ...

  4. webview 个人小程序_微信小程序新增Webview它是什么东西?

    原标题:微信小程序新增Webview,它是什么东西? 今天刚刚给客户做完案子,正准备去睡觉.2017 今天刚刚给客户做完案子,正准备去睡觉.2017年11月3日 11:29看到了微信公众平台推送的小程 ...

  5. input ios问题 小程序_微信小程序开发常见问题汇总

    原标题:微信小程序开发常见问题汇总 1.域名必须是https 非https的域名不被微信小程序允许. 2.input组件placeholder字体颜色 卸载placeholder-class里面的co ...

  6. mysql传数据到微信小程序_微信小程序直播 数据同步与转存

    本文已同步到专业技术网站 www.sufaith.com, 该网站专注于前后端开发技术与经验分享, 包含Web开发.Nodejs.Python.Linux.IT资讯等板块. 本教程所用项目框架为egg ...

  7. qml如何发布程序_微信小程序如何发布?公司和个人注册流程科普

    如今制作微信小程序已经是非常简单的事了,即使是完全不懂技术的小白,也能利用小程序制作工具快速生成小程序,基本上选一个模板就能快速把页面搭建好. 不过,虽然小程序页面搭建很简单,但还有不少人不知道页面搭 ...

  8. ready等方法 微信小程序_微信小程序开发一些经验

    对于微信小程序开发入门,还是比较简单的,只需要具备基本的css+js知识就可以了,成本比较低. 写了小程序和RN之后,有一种原生很笨重的感觉,就是小程序或者是RN等这些新的开发方式在效率上面真的有比较 ...

  9. ar 微信小程序_微信小程序开放AR功能,全面提升交互体验

    1.什么是AR? AR又称增强现实(Augmented Reality)技术,是一种将虚拟信息与真实世界巧妙融合的技术,广泛运用了多媒体.三维建模.实时跟踪及注册.智能交互.传感等多种技术手段,将计算 ...

最新文章

  1. 在qemu模拟的aarch32上使用kgtp
  2. hardfault常见原因_XMC实验分享之四十八: Cortex M0的Hard Fault发生原因
  3. python pkl是什么类型的文件?怎么来打开它?(使用numpy和pickle都能打开)
  4. LeetCode - 4. 寻找两个正序数组的中位数
  5. 开篇词丨这样学Redis,才能技高一筹
  6. Java泛型中的多态
  7. DEIGRP 的配置
  8. 安全策略已传播,但有警告信息。0x534:帐户名与安全标识间无任何映射完成
  9. centos卸载不必要的程序_在RHEL / CentOS 7上禁用和删除不需要的服务最小安装
  10. Android系统信息获取 之十二:获取屏幕分辨率及密度
  11. wireshark(2)- ethernet工具 xcap wireshark tcpdump
  12. 【大电流H桥电机驱动电路的设计与解析(包括自举电路的讲解,以IR2104+LR7843为例)】
  13. 如何设置变更Word页面颜色?干货经验!怎样操作更改word背景颜色?
  14. Swift游戏实战-跑酷熊猫 09 移除场景之外的平台
  15. 如何利用宝塔面板+JavaWeb+MySQL设计一个注册登录界面
  16. 2、Ubuntu介绍加环境搭建详细教程
  17. 苹果花了 5000 万美元找特斯拉买电池,它想做什么?
  18. Spring Cloud Gateway 概述 《重新定义Spring Cloud实战》读书笔记
  19. 使用 ESP32 + Python 实现在线人员入侵检测
  20. ipad做win10扩展屏的方法

热门文章

  1. 网络游戏封包基础 作者不明
  2. html飞机姿态仪表,了解飞机驾驶舱的六大基本仪表
  3. Vue学习之--------插槽【默认插槽、具名插槽、作用域插槽】(2022/8/30)
  4. 测绘学概论第三版——2 大地测量学
  5. 边缘计算硬件的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  6. Emgu Mat方法和Image方法设置一张背景图像
  7. 悬崖边上的舞者:橙光游戏
  8. 优信第二大股东违约:所持股权被转让 面临公开市场出售
  9. 珠宝加工厂:我的成本下降空间在哪里?
  10. layui表格工具条,动态控制按钮的展示