前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >反编译小程序记录

反编译小程序记录

作者头像
用户1437675
发布2020-07-29 15:17:50
1.6K0
发布2020-07-29 15:17:50
举报
文章被收录于专栏:Angular&服务

前言

因为一些需求,需要我们把上线的小程序反编译成源码。并查看源码。

环境

代码语言:javascript
复制
macOS Catalina            10.15.5
MUMU模拟器                 1.9.21(20200720)
node                      8.11.3

在MUMU模拟器设置中开启共享文件夹以及root权限,然后下载微信RE文件管理器

搭建反编译环境

下载反编译工具

最开始作者的(随后作者移除了该项目) ①,wxappUnpacker

分支出来同步更新的反编译工具 ②,wxappUnpacker

该教程使用的版本工具 ③,wxappUnpacker

克隆项目到本地然后执行

代码语言:javascript
复制
npm i

安装项目依赖

获取小程序要反编译的代码包

1.使用自己手机上的微信打开"人堆"小程序,可以添加到"我的小程序" 2.打开模拟器的微信并登录 3.在模拟器微信的下拉小程序最近使用历史中打开"人堆",如果历史记录中没有就在我的小程序中找一找 4.打开小程序等待加载之后就可以去找源码包了 5.打开RE文件管理器,进入到以下路径查找源码包(可以根据下载时间区分出你想要的源码包)

代码语言:javascript
复制
/data/data/com.tencent.mm/MicroMsg/4c8188dbf07eec893d0ac90974657aeb/appbrand/pkg

长按_1123949441_403.wxapkg 文件把该文件在模拟器中复制到模拟器中的共享文件夹中

反编译小程序源码

代码语言:javascript
复制
node wuWxapkg.js <path/to/rendui.wxapkg>

image.png

导出的文件目录结构

代码语言:javascript
复制
.
├── components
│   └── RefreshView
├── images
├── pages
│   ├── auth
│   ├── charts
│   │   ├── area
│   │   ├── column
│   │   ├── line
│   │   ├── line_full_screen
│   │   ├── pastArticle
│   │   ├── pastMarket
│   │   ├── pie
│   │   ├── radar
│   │   ├── ring
│   │   ├── scrollline
│   │   ├── spec_line
│   │   └── todayMarket
│   ├── index
│   ├── info
│   ├── login
│   ├── markets
│   │   ├── cart
│   │   ├── index
│   │   └── vender
│   ├── prices
│   │   ├── add
│   │   ├── freight
│   │   ├── groups
│   │   └── list
│   ├── repassword
│   ├── user
│   │   ├── aboutUs
│   │   ├── addArticle
│   │   ├── addresses
│   │   │   └── operation
│   │   ├── authorize
│   │   ├── buyRecord
│   │   ├── checkArticle
│   │   ├── drivers
│   │   │   └── operation
│   │   ├── editArticle
│   │   ├── feedback
│   │   ├── feedbackRet
│   │   ├── incomeDetail
│   │   ├── myArticle
│   │   ├── myFans
│   │   ├── orders
│   │   ├── paySuccess
│   │   ├── promoter
│   │   ├── upgrade
│   │   ├── venders
│   │   │   └── operation
│   │   └── vipDesc
│   └── vender
│       ├── contacts
│       │   └── operation
│       ├── main
│       ├── origin
│       │   └── operation
│       ├── product
│       │   └── operation
│       ├── productInfo
│       │   ├── operation
│       │   └── volumes
│       │       └── volume
│       ├── salesmain
│       ├── salesmen
│       │   └── operation
│       ├── settings
│       └── stock
│           └── operation
└── utils

如果想单独执行config、js、wxml、wxss的反编译可以在解包时加-o参数不做后续操作

工具用法

代码语言:javascript
复制
node wuConfig.js <files...> 将 app-config.json 中的内容拆分到各个文件对应的 .json 和 app.json , 并通过搜索 app-config.json 所在文件夹下的所有文件尝试将 iconData 还原为 iconPath 。
node wuJs.js <files...> 将 app-service.js (或小游戏中的 game.js ) 拆分成一系列原先独立的 javascript 文件,并使用 Uglify-ES 美化,从而尽可能还原编译前的情况。
node wuWxml.js [-m] <files...> 将编译/混合到 page-frame.html ( 或 app-wxss.js ) 中的 wxml 和 wxs 文件还原为独立的、未编译的文件。如果加上-m指令,就会阻止block块自动省略,可能帮助解决一些相关过程的 bug 。
node wuWxss.js <dirs...> 通过获取文件夹下的 page-frame.html ( 或 app-wxss.js ) 和其他 html 文件的内容,还原出编译前 wxss 文件的内容。
node wuWxapkg.js [-o] [-d] [-s=<Main Dir>] <files...> 将 wxapkg 文件解包,并将包中上述命令中所提的被编译/混合的文件自动地恢复原状。如果加上-o指令,表示仅解包,不做后续操作。如果加上-d指令,就会保留编译/混合后所生成的新文件,否则会自动删去这些文件。同时,前面命令中的指令也可直接加在这一命令上。而如果需要解压分包,请先解压主包,然后执行node wuWxapkg.js [-d] -s=<Main Dir> <subPackages...>,其中Main Dir为主包解压地址。除-d与-s外,这些指令两两共存的后果是未定义的(当然,是不会有危险的)。

总结

至此小程序反编译完成。并可以在微信开发者工具中打开使用。使用需要勾选不校验合法域名勾掉e6转es5 有的小程序没用使用ES6语法的话就不用

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 环境
      • 搭建反编译环境
        • 获取小程序要反编译的代码包
          • 反编译小程序源码
            • 工具用法
              • 总结
              相关产品与服务
              云开发 CloudBase
              云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档