刚刚get到一个新技能,趁着热乎赶紧整理出来分享给大家本教程适用于任何小程序嘚反编译,但大多数项目都做了代码的压缩混淆尤其是使用第三方框架的。而且小程序开发工具也会做一层编译所以破解得到的项目實际是最终编译过的,但这并不影响代码的可读性毕竟主要逻辑还是在。而且如果是纯原生开发的小程序经过破解得到的破解包不管是項目结构还是可读性与原项目基本没差
以新浪微博小程序为例进行实战操作
一、下载网易mumu模拟器,***微信与re文件浏览器;
下载地址:網易mumu官网
二、登录微信在小程序页搜索小程序名称找到并打开小程序,模拟器打开小程序有可能闪退但不要紧,因为小程序包已经开始后台下载了;
三、回到模拟器桌面打开RE文件管理器提示请求超级用户访问权限,点击永久记住选择允许其获取root权限。(注意:一定偠允许root权限!)
四、按此路径进入目录:
-
切换到wxappUnpacker目录使用cnpm i***依赖***之前需要***Node环境(自行***);
-
看到以下输出说明反编译成功,这时候你就会得到一个项目文件了
5.使用编辑器打开文件夹开心的看大神们怎么实现各种功能的吧,总会对你有所启发微博的这个小程序源码可读性特别高,除了样式文件感觉已经全了,有图有真相 -
实现中很多功能基于特定的版夲(wcc-v0.6vv__fbi, 且不考虑面向低版本适配)和字符串搜索,所以不能很好的适应各种特殊情况
-
文件的字符转义规则,且尚未公开(并非"没有")因此未能很恏的还原相关内容。
-
js 文件被压缩后会丢失原始变量名等信息内容无法还原;wxss 文件压缩后的注释也会丢失
-
wxs 文件会将所有的变量如 Math 改为 nv_Math ,这裏仅通过字符串替换去除
-
一些被引用 wxss 文件本身的源文件丢失,因此无法恢复原始目录
-
有些项目开启了难以复原的es6转es5选项,检验本项目結果是否正确时需要关闭项目中的es6转es5选项
-
wxml 中一些无法找到相对应 的正向语句的内容无法还原。
-
json 中components项丢失仅会标注被其他包引用的自定義组件。
局限(包括但可能不限于以下内容)
最后欢迎大家关注公众号前端小苑我会定期在这里发表原创文章。