反编译微信小程序

作者: 在寻找雪见的景天 | 来源:发表于2018-08-25 13:45 被阅读45次

前言

最近有一个任务,就是让我试下反编译微信小程序,搞起。事先说明,写这篇博客,只是为了记录过程,不建议大家都去反编译,毕竟都是别人的劳动成果。然后反编译的这个事例,也打了码。如果贵公司的人发现了,希望及早更新处理下,以免接口的泄露。

准备工具

1、node.js环境,https://nodejs.org/en/
2、反编译脚本,https://github.com/qwerty472123/wxappUnpacker
3、夜神模拟器,https://www.yeshen.com/ 主要是用来登录微信,运行小程序,然后再拿到小程序的安装包 wxapkg

1、获取小程序的安装包

1、我试了小米手机是拿不了小程序的安装包的,即使是root了也不行,目录是空的。所以,用夜神模拟器吧。打开夜神模拟器,里面有个应用中心,直接搜索微信下载安装吧。安装好微信后,登录微信,打开你想要反编译的小程序。ok,打开后,回到桌面,打开桌面的“ES文件浏览器”:


打开ES文件浏览器
打开root开关
打开根目录

然后找到这个路径:/data/data/com.tencent.mm/MicroMsg/1bd6b8205e3a41715b8e2cca72bc50f0/appbrand/pkg/
里面有你运行过的小程序安装包,把它复制到主目录,然后再通过微信发到你的电脑吧,然后就拿到了小程序的安装包。


2、下载反编译脚本到本地,并安装相关配置

脚本目录

打开命令窗口,cd到上面这个目录,然后输入以下:

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

完了后,就到最后一步,输入:node wuWxapkg.js +空格+安装包目录,如下图


然后就会自动反编译,在安装包目录生成一个文件夹:


3、打开项目编译

打开微信开发工具,自己在后台创建一个小程序,拿到appid,并填进去。



点击确定后,就能进去页面了,这个时候,会提示以下错误:



这个是因为小程序的请求域名,都需要在后台配置的。所以,你需要把这个域名,在你创建的那个小程序开发设置那里,填上。填上后,重新启动开发者工具,这时,应该就正常了。如下图:

然后,我们可以看到里面的代码,都非常的清晰。



连接口都能看出来,这样别人就能直接调用这个接口了。

总结

局限(包括但可能不限于以下内容)
1、实现中很多功能基于特定的版本(wcc-v0.6vv_20180111_fbi, 且不考虑面向低版本适配)和字符串搜索,所以不能很好的适应各种特殊情况。
2、wxml 文件拥有不同于 xml 和 html 文件的字符转义规则,且尚未公开(并非"没有"),因此未能很好的还原相关内容。
3、js 文件被压缩后会丢失原始变量名等信息内容无法还原;wxss 文件压缩后的注释也会丢失。
4、wxs 文件会将所有的变量如 Math 改为 nv_Math ,这里仅通过字符串替换去除。
5、一些被引用 wxss 文件本身的源文件丢失,因此无法恢复原始目录。
6、有些项目开启了难以复原的es6转es5选项,检验本项目结果是否正确时需要关闭项目中的es6转es5选项。
7、wxml 中一些无法找到相对应 的正向语句的内容无法还原。
8、json 中components项丢失,仅会标注被其他包引用的自定义组件。

最后说两句

大家可以利用这个工具,试试自己的小程序,是否能被反编译出来,然后采取一些混淆措施等等。
尽量别动坏心机,造成商业犯罪就不好了。

相关文章

  • 微信小程序反编译(最新)工具,完美解决分包问题

    最新小程序小游戏反编译,源码获取,这套工具解决无法反编译文件缺失情况 看了很多反编译、找回微信小程序源码很多教程,...

  • 反编译微信小程序 解决$gwx is not defined和_

    由于微信小程序升级的原因,最近 github 上的 wxappUnpacker-master 小程序反编译工具已部...

  • 小程序反编译方法

    看了很多反编译小程序、找回微信小程序源码很多教程,各种问题导致都没法正常使用。微信版本升级后,会遇到各种报错, 以...

  • 反编译微信小程序

    前言 最近有一个任务,就是让我试下反编译微信小程序,搞起。事先说明,写这篇博客,只是为了记录过程,不建议大家都去反...

  • 微信小程序反编译

    最近在学习微信小程序开发,半个月学习下来,很想实战一下踩踩坑,于是就仿写了一个滴滴他们家的青桔单车小程序的前端实现...

  • 微信小程序反编译

    一、相关环境安装 1、下载 nodejs[https://nodejs.org/en/]2、下载反编译nodejs...

  • 微信小程序反编译

    最近公司想做地图业务,但是考虑到数据的重要性,我们就需要从各个角度进行评估,如何保证我们的程序安全;经过长期的调研...

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

    此文章转载的是https://blog.csdn.net/aaron9185/article/details/80...

  • 微信小程序反编译实践

    在做爬虫项目的时候,有时可以通过爬取小程序的后端接口的加密算法。下面是小程序反编译的实践笔记。 所需工具 已获取 ...

  • 微信小程序基础

    微信小程序介绍微信小程序开发工具的使用微信小程序框架文件微信小程序逻辑层微信小程序视图层微信小程序组件介绍微信小程...

网友评论

  • adustdu2015:用QQ小号给大号传文件,今天我刚试了一下,确实可以。每个包差不多小于2M,有一个包是基础包差不多3M,不用管它。把文件移动到 / 根路径,用QQ传出来。
  • adustdu2015:你用QQ传呀。
  • 69c831ef500c:模拟器上找到文件啦,但是从模拟器上拉不到电脑上
  • 小怂本怂:为什么会有两个.wxapkg文件,是不是这种小程序不能反编译啊
  • 候鸟与暖风:当我发给电脑的时候一直显示为无效文件
    在寻找雪见的景天:@候鸟与暖风 改后缀名就好
  • 候鸟与暖风:我在文件夹找到了小程序的文件,但是当我把文件压缩之后发送给我的电脑,一直显示失败,不知道如何是好

本文标题:反编译微信小程序

本文链接:https://www.haomeiwen.com/subject/hvzwiftx.html