最近接到一个微信小程序的项目,本想把开发价格报高一点,可客户说他之前已经做了一版了,现在需要升级,但之前的开发不配合了,实在没办法,就找到了我。
我问他,有没有源码?他回:他不懂技术,第一版开发完部署完成后也就没再过问,后来找其他人也要源码,结果开发那哥们儿说给不了源码。
这客户也是着急,他问我有没有办法破解,我这人就喜欢打报不平,更喜欢炫技,我说试试吧!
于是乎便开展了一系列的技术攻关操作。
经过一翻度娘,得知可以通过模拟器获取小程序编译后的文件,即:wxapkg文件,然后用node进行破解.
因为我用的是Mac,所以就在网上支持Mac的夜神模拟器IOS版,NoxInstaller_3.8.5.1_cn.dmg,文件大小为611MB.
于是我乐呵呵地开始了一顿安装,擦,第一步就卡住了。
模拟器安装很顺利,但启动进度条到99%的时候,就卡在那儿不动了
又开始一顿度娘,试了好多方法都不行,后来我又用老的WINDOWS电脑安装其他模拟器,其他模拟器倒是可以正常启动,但微信登录不了,后来查了一原因,原来是微信为了防止用户恶意操作故意屏蔽模拟器的。
夜神启动不了,其他模拟器又登录不了微信,这下郁闷了。
正在冥思苦想解决方案之际,我把夜神反复卸载安装,突然地,夜神成功启动了,后来反复测试,我发现只要你电脑配置满足运行夜神,启动不了就重新安装即可,最多重装3次,很神奇吧。
夜神不愧是夜神,微信一下登录了,而且切换其他账号也没问题。
登录微信后,在微信首页下拉页面,在页面顶部找到你之前访问过的小程序,打开,在小程序完全加载后,这时候就可以关闭微信了。
用夜神模拟器自带的文件管理器amaze打开存储小程序文件的目录/data/data/com.tencent.mm/MicroMsg。(注:查看小程序文件目录必须开启root权限,夜神模拟器默认打开root权限,也可以在设置界面中关闭)
那两个后缀名为wxapkg的文件就是你要找的小程序了。把这个文件拷备到共享目下,/mnt/shared/Other下
(注:由于我用的是Mac,Mac下夜神不支持模拟器与本地文件传输功能,于是我找到了本地与模拟的共享文件目录,我的在/users/taoliu/Library/Application Support/NoxAppPlayer/Nox_share,而windows下夜神自带文件传工具,直接拖拽到本地即可)
哦,对了,这里还遇到一个问题,amaze文件管理器在mac下真不好用,粘贴按钮总是点不上,我每次复制粘贴文件都费老大劲了,有时候运气好一次就搞定了,有时间得试半天,有点耐心,肯定可以粘贴上的。
现在我们拿到了小程序的wxapkg文件, 下面就可以进入到反编译环节了,这里又是一大堆的坑啊。
先是安装node, 再安装各种包,到最后真正开始反编译了,各钟报错, 要么就是包没安装对,要么就是命令输错了,这些都解决了吧,又报反编译时的解析错误,要么是wxml文件解析失败,要么wxss文件不出来,我想好多朋友也都遇到过了。
经过一番摸索,找到了一款专门用来反编译小程序的工具包,而且把所有相关包都集成好了,wxappUnpacker,这个工具包的作者还专门为反编译小程序开了一个公众号:极客之路,大家有兴趣的可以进去学习、膜拜。
下面是这个公众号的二维码:
里面包含了这个工具包的使用方法及破解的原理以及各种细节问题(包含最新破解流程以及分包)
下面是我反编译成功的几个截图,目前除了一款小游戏破解失败了,其他的成功率在90%以上.
还有一个需要注意的是:一些大公司开发的小程序都采用分包模式,在反编译的时候要先明确哪个是主包,哪个是子包,先反编译主包,再反编译子包,子包的命令跟主包的命令就差一个-s=
这个问题大家可以参考“极客之路”的详细教程,大家有问题欢迎给我留言。