摘要

安装wxappUnpacker小程序反编译工具并使用(2020.03)

关键词: 微信小程序反编译 wxss

介绍

上次分享了web前端爬取工具 ,那么这次也同样讲讲微信小程序反编译吧,对于像博主这种审美奇低且前端技术渣渣的人来说,实在是利器呀。不过尽量只是反编译来学习研究啦!

安装反编译脚本

首先,得先了解下怎么安装,内容过长,我就不Ctrl CV了(主要是安装简单,成功并且完美地编译难)

完美地反编译出来难就难在微信小程序一直更新,但是编译工具又是旧的

First,终于成功了,分享一波超详细小程序源码获取方法——图文!

如果想省事,安装nodejs之后直接下载下面的链接的文件替换掉你的反编译工具:

https://gitee.com/Sao-operation/wxappUnpacker/repository/archive/master.zip

如果你只是样式编译出问题了(就是page的wxss都是空白的),那么

  • 修改wxappUnpacker文件中的 wuWxss.js
function runVM(name, code) {
// let wxAppCode = {}, handle = {cssFile: name};
// let vm = new VM({
// sandbox: Object.assign(new GwxCfg(), {
// __wxAppCode__: wxAppCode,
// setCssToHead: cssRebuild.bind(handle)
// })
// });
// vm.run(code);
// for (let name in wxAppCode) if (name.endsWith(".wxss")) {
// handle.cssFile = path.resolve(frameName, "..", name);
// wxAppCode[name]();
// } let wxAppCode = {};
let handle = {cssFile: name};
let gg = new GwxCfg();
let tsandbox = {
$gwx: GwxCfg.prototype["$gwx"],
__mainPageFrameReady__: GwxCfg.prototype["$gwx"], //解决 $gwx is not defined
__vd_version_info__: GwxCfg.prototype["$gwx"], //解决 __vd_version_info__ is not defined
__wxAppCode__: wxAppCode,
setCssToHead: cssRebuild.bind(handle)
} let vm = new VM({sandbox: tsandbox});
vm.run(code);
for (let name in wxAppCode) {
if (name.endsWith(".wxss")) {
handle.cssFile = path.resolve(frameName, "..", name);
wxAppCode[name]();
}
}
}

使用

获取wxapkg文件

  1. 安装夜深模拟器(但是这里有个问题,夜深模拟器可能用不了,我只记得是多开器里开一个新的才行,而且以后每次使用都得切换成那个新的)

  2. 打开夜深模拟器登录微信,点击需要学(piao)习(qie)的微信小程序

  3. 打开RE文件管理器(没有的话就先安装吧),到如下目录,打开这个看着名字是十六进制且很长的文件夹(每个人的会不一样)

  4. 进入如下目录,选择wxapkg文件(注意日期,例如红线部分意为6月17日)

  5. 想办法把wxapkg文件从夜深模拟器里发送到你的能找到到电脑文件夹里吧

反编译

  1. 第一步

    打开nodejs

    跳转到反编译脚本的目录,例如反编译脚本呢放在D盘,且反编译脚本文件夹名为”wxappUnpacker“,如果是Windows系统( 如果是Linux去掉下面那个蛋疼的 /d),则在node.js command pormpt输入:

    cd/d D:\wxappUnpacker

    cd D:\wxappUnpacker
    cd D:
  2. 第二步

    跳转到反编译脚本的根目录之后,在电脑文件夹里找到wxapkg文件,例如wxapkg文件放在D盘,且文件名为_000000_1.wxapkg,则在node.js command pormpt输入:

    node wuWxapkg.js -d D:\_000000_1.wxapkg

    再回车

  3. 第三步

    最后去找和.wxapkg文件相同路径下的同名文件夹,该文件用微信开发者工具打开即可。

结论

反编译...真香(我这是馋他的代码吗,我这是在学习研究)

参考资料

终于成功了,分享一波超详细小程序源码获取方法——图文:顺毛驴_dedc

反编译微信小程序错误: $gwx is not defined和__vd_version_info__ is not defined 已解决

微信小程序反编译~2020年的更多相关文章

  1. 如何找回微信小程序源码?2020年微信小程序反编译最新教程 小宇子李

    前言:在网上看了找回微信小程序源码很多教程,都没法正常使用.微信版本升级后,会遇到各种报错, 以及无法获取到wxss的问题.查阅各种资料,最终解决,于是贴上完整的微信小程序反编译方案与教程. 本文章仅 ...

  2. 微信小程序反编译

    看到一个有意思的小程序,想了解是如何实现的,于是找了反编译方法. 安装adb驱动 百度安装adb驱动, 设计设置开发者模式,连接电脑. -> % adb devices List of devi ...

  3. 微信小程序 - 反编译线上源码

    github地址:https://github.com/qwerty472123/wxappUnpacker 不过我好像从来未成功过哈,TX地图+.TX公交都失败了 点击下载以上两个文件 哦,对了,你 ...

  4. 微信小程序“反编译”

    https://www.jianshu.com/p/ad8f417219e9 https://segmentfault.com/a/1190000018592740?utm_source=tag-ne ...

  5. 获取微信小程序源码

    https://blog.csdn.net/aaron9185/article/details/80576183 http://lrdcq.com/me/read.php/66.htm https:/ ...

  6. 我为什么不看好微信小程序

    我自认为对新技术还是比较有热情的,可对于小程序这个“新技术”,我却完全是被动的.去年9月份的时候,微信小程序开始内测,瞬间引爆朋友圈.知乎等一众分享平台.当时我大概了解了一下,觉得从技术角度上来说没啥 ...

  7. 微信小程序为什么不被看好?

    我自认为对新技术还是比较有热情的,可对于小程序这个“新技术”,我却完全是被动的.去年9月份的时候,微信小程序开始内测,瞬间引爆朋友圈.知乎等一众分享平台.当时我大概了解了一下,觉得从技术角度上来说没啥 ...

  8. 微信小程序资源整理

    微信小程序相关的文档.教程.开源项目等资源的整理,以便于开发学习使用. —— —— 收录仅作个人学习使用,涉及侵权行为及时联系: maple_6392@163.com 项目地址:GitHub | 码云 ...

  9. 微信小程序学习 动手撸一个校园网小程序

    动手撸一个校园网微信小程序 高考完毕,想必广大学子和家长们都在忙着查询各所高校的信息,刚好上手微信小程序,当练手也当为自己的学校做点宣传,便当即撸了一个校园网微信小程序. 效果预览 源码地址:Gith ...

随机推荐

  1. k8s的两种网络方案与多种工作模式[flannel与calico]

    k8s的两种网络方案与多种工作模式 1. Flannel: flannel有三种工作模式: 1. vxlan(隧道方案) 2. host-gw(路由方案) 2. udp(在用户态实现的数据封装解封装, ...

  2. demo项目开发(Python+flask+mysql+redis只包含后端接口)

    [demo项目开发需求] 用户信息管理,可以注册.登录.添加用户.删除用户 注册:任何用户可以注册,对用户提交的注册信息进行校验,返回对应的信息,其中: 用户名:必填,唯一 密码:必填,只能6-12位 ...

  3. 三文搞懂学会Docker容器技术(中)

    接着上面一篇:三文搞懂学会Docker容器技术(上) 6,Docker容器 6.1 创建并启动容器 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] --na ...

  4. 【asp.net core 系列】12 数据加密算法

    0. 前言 这一篇我们将介绍一下.net core 的加密和解密.在Web应用程序中,用户的密码会使用MD5值作为密码数据存储起来.而在其他的情况下,也会使用加密和解密的功能. 常见的加密算法分为对称 ...

  5. js的原型和原型链

    总结: 1.每一个函数都有一个prototype属性,默认指向object空对象(原型对象), 每一个原型对象都有一个constructor属性,指向函数对象. eg: Person函数:     P ...

  6. python 3内置函数

    2018-07-14 enumerate() 用于指定下标 例: m = ['a','b','c'] for i,j in enumerate(m,1): print(i,j) 输出: 1 a 2 b ...

  7. 入门大数据---Flume整合Kafka

    一.背景 先说一下,为什么要使用 Flume + Kafka? 以实时流处理项目为例,由于采集的数据量可能存在峰值和峰谷,假设是一个电商项目,那么峰值通常出现在秒杀时,这时如果直接将 Flume 聚合 ...

  8. 在Github上建立自己的个人主页

    目录 注册Github账号 登录Github账号 建立新仓库 选择个人主页的主题 注册Github账号 首先打开Github的主页(https://github.com/),点击右上角的sign up ...

  9. Python 3.10 版本采纳了首个 PEP,中文翻译即将推出

    现在距离 Python 3.9.0 的最终版本还有 3 个月,官方公布的时间线是: 3.9.0 beta 4: Monday, 2020-06-29 3.9.0 beta 5: Monday, 202 ...

  10. 为DLL文件添加强名称

    程序在编译时出现类似 "错误 1 程序集生成失败 -- 引用的程序集“XXXXXXXXXX”没有强名称" 这样的错误,是因为它不是强名称的,则需要进行以下操作: 例如:com.so ...