小程序如何反编译_小程序反编译


 npm install


### 操作步骤


首先打开模拟器,安装下微信(获取小程序的包)和RE文件管理器(找到小程序的包并导出)


登录微信,然后进入要反编译的小程序,打开RE文件管理器,找到路径`/data/data/com.tencent.mm/MicroMsg/{{哈希值}}/appbrand/pkg/xxxxx.wxapkg` 对应程序包。


如:`/data/data/com.tencent.mm/MicroMsg/a5e1a6f4438d7cad5182e77248180f50/appbrand/pkg/xxxxx.wxapkg`,具体哈希值需要根据生成文件时间来判断


![image-20210831222820533](https://img-blog.csdnimg.cn/img_convert/cc0c21815cd198f8354881383bde0f6d.png)


如果是模拟器的话,可以使用QQ或者是模拟器自带的文件共享器,将文件导入至电脑,真机的话直接连接电脑传输文件即可。



> 
> 注:本人测试中Root过的机型是无法登录微信,要么一直转圈圈要么滑块加载不出来,也许是模拟器的问题或是之前已经安装过一些插件导致的。如果登录不上可选择关闭Root登录微信后,在打开Root。
> 
> 
> 


接着打开解包工具文件夹,打开控制台窗口 输入 `node wuWxapkg.js <wxapkg路径>`,运行结果如下图


![image-20210830034643420](https://img-blog.csdnimg.cn/img_convert/4f536eca2f950cb8d9ab47c3a5767e36.png)


会在wxapkg文件下生成与之对应的文件夹,接着打开微信开发者工具,选择导入项目,选择对应文件夹,选择测试号


![image-20210830034848958](https://img-blog.csdnimg.cn/img_convert/d7637e983e5ece62903007b76096aad2.png)


导入即可运行,接着就可以开始分析小程序的参数和页面样式了。


![image-20210831222521295](https://img-blog.csdnimg.cn/img_convert/d8a75dfda53d3545272dee161a9eaa62.png)


### 一键导包工具


[xuedingmiaojun/mp-unpack: 基于electron-vue开发的跨平台微信小程序自助解包(反编译)客户端 (github.com)]( )客户端 (github.com)")


有个基于electron-vue开发的一键导包工具,具体的话可以查看对应源码,需要的可自行编译,不过也已经提供各平台对应的应用程序。


![image-20210831222006013](https://img-blog.csdnimg.cn/img_convert/f908c80fc3cfe90636c6c5eceb52935b.png)


不过是因为electron写的,且不支持选择路径,所以C盘会瞬间多个150M左右,安装包大约40M,除此外的话使用体验还是非常好的。(至少可以不用输入命令)


### 一些问题


#### Q:电脑也能运行小程序,那能不能从电脑上导包呢


A:能,电脑导包的路径为`C:\Users\{{电脑用户名}}\Documents\WeChat Files\Applet\{{小程序AppID}}\{{随机产生的数字}}\__APP__.wxapkg`,然后按照如上步骤,就可反编译小程序,不过电脑导包可能会出现**magic number is not correct** 的错误 (本人测试是这样的),毕竟小程序主要运行在手机上,所以还是推荐手机导包。


#### Q:反编译后的小程序能重新打包后在发布吗


A: 理论上是可以的,但不能保证反编译后的小程序就一定能重编译成功,毕竟有一些插件等等,编译都不能编译,就别谈打包了。并且反编译后的代码都是经过压缩的,阅读性略差,不过如果是uniapp编写的话,除了js文件外,其余基本原封不动(前提没做混淆的情况下),所以要仿一个页面的话,完全可以新建一个Vue文件,然后将其html与css添加至对应模板处,然后js就只能扣去部分代码,至于接口的话都是别人的,所以一般分析下页面样式和参数就差不多了。


我写这篇的时候目的就是为了查看别人小程序的样式而已。


### 最后


### 基础学习:

前端最基础的就是 HTML , CSS 和 JavaScript 。

##### 网页设计:HTML和CSS基础知识的学习

HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。



![](https://img-blog.csdnimg.cn/img_convert/6fb5fad22caaedb17896adaa72ea6317.webp?x-oss-process=image/format,png)


CSS样式是表现。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。

![](https://img-blog.csdnimg.cn/img_convert/0409a3ae0fba9353d9a927a03f6644eb.webp?x-oss-process=image/format,png)


##### 动态交互:JavaScript基础的学习

JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。

avaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。

![](https://img-blog.csdnimg.cn/img_convert/85fcce06ec0e20969a4491111f0222a3.webp?x-oss-process=image/format,png)
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值