本文仅针对有一定代码知识的朋友。
分享之前先声明,这里提供的方法仅适合自己的小程序发布之后代码丢失的情况。不建议去反编译他人的小程序,反编译之后的代码是混淆的,反编译他人的小程序意义不大,最多参考一下别人的代码。
丢失的源码
先说说我遇到的问题。
在小程序刚刚上线的时候,我纯粹为了玩耍,从17-18年陆陆续续写了十来个小程序。后来辞职创业就很少碰代码了。之后的一个月黑风高的夜晚,我脑子一热把电脑恢复系统了。n多天后发现自己的小程序源码都被删了,只有一个开源在gayhub上的找回了,其他的全部丢失。
最近想起了自己的小程序,想着放点广告上去赚个零花钱,发现没有源码了,没办法修改了。
于是经过一系列研究尝试,我找到了一个可以反编译出小程序源码的开源软件。
当当当当:wxappUnpacker
就是这货,这里为了大家使用过程中少绕弯路,我简单分享一下食用方法。
原理简述
这里先简单说下软件的原理,没耐心看我啰嗦的码神可以看完原理自行食用。
微信自己发明了一种压缩文件,这种文件压缩包后缀名是.wxapkg。
小程序的程序包就是先进行了代码混淆之后打包成了这种文件。我们在微信上打开小程序的时候这个文件包就被下载到了我们手机里。
这个开源软件的原理就是破解了.wxapkg文件,解压出了小程序的代码包。
就这么简单。
下面详细说下我是怎么使用的。
食材
下面是所需食材:
1、node环境
2、安卓手机/安卓模拟器
3、ES文件管理器
4、我们的主角:wxappUnpacker
node环境
软件是用node写的,所以你需要安装好node环境,电脑上没有node环境的直接去官网下载一个傻瓜安装即可。
如果你不是程序员那你就不用尝试了,因为反编译了代码对你也没啥用,你可以把这篇文章转发给你的程序员朋友让他们搞。
安卓模拟器&ES文件管理器
因为我们要获得小程序的压缩包文件,所以我们需要用安卓手机的文件管理器去拿到,有安卓手机的直接用手机,没有安卓手机的直接下载一个模拟器就可以。
安装好模拟器之后,当然我们要在模拟器上安装一个微信。然后我们安装一个ES文件管理器。然后我们打开微信,登录之后打开你想要反编译的小程序。
拿到文件
然后打开ES文件管理器在下面这个路径下会看到.wxapkg文件,有可能不止一个,也许很多,需要都拿出来。
/data/data/com.tencent.mm/MicroMsg/{一串数字字母混合物}/appbrand/xxx.wxapkg
直接通过微信发送传出来,考虑到微信会检测到文件格式,于是我又用ES文件管理器把这个文件压缩成了.zip文件。然后通过微信把这个文件发了出来。
执行反编译
把刚才拿出来的所有文件解压后放到一个文件夹,然后down下来wxappUnpacker的代码,然后在wxappUnpacker根目录下执行命令:npm install,然后再执行node wuWxapkg.js /xxx/xxx/xxx.wxapkg ,后面这一串是你刚才准备好的.wxapkg文件的路径。
这时候你就得到了反编译完成的小程序文件包啦。
Happy coding!