9月22日开始,本内容不再免费公布。
小程序前端可以反编译从当初微信自己的跳一跳开始就有大神出教程,写脚本工具了。
我们几个月前也推出了反编译微擎小程序模块的业务,由于我们决定不再发开心版资源了,当然也许偶尔还是发,看时间,所以趁这个周末就简单写下过程。
不过毕竟是反编译,完整性上肯定多多少少不如原版的,主要是看开发者怎么写的程序。
小程序反编译主要就是先去获取小程序的文件,然后解包,还原。各种都有不同的教程或者获取还原过程,今天我以电脑的方式讲,毕竟比用手机还简单点。
小程序前端都是一样的,这里我只是以人人商城做案例写下过程。写在前面的话
由于目前微信对小程序的保护做得还不够好,正常来讲很多开发者只是把很少的功能写到前端,但是微擎这边的开发者,估计是防止盗版泄露,就有很多开发者把很多重要的功能写进前端程序。这样一来对程序就有很大的安全隐患,比如微擎上有个志汇8.5的小程序,通过前端抓包拦截就可以绕过他们的支付和给自己刷余额,如果遇到平台管理员不审核那损失就大了。
所以在这里也提醒下很多小程序的开发者,前端尽量少些重要信息,通过后端调用就行了,加强后端的加密授权。
当然了,有前端源码没有后端源码或者不对口,也是白费不能用的,只是可以说当自己学习下,扩展下自己的知识面。开始准备一,电脑安装准备环境与软件
1:nodejs环境与编译包(win和Mac系统都可以安装)
2:安卓模拟器,我演示用的
3:小程序解包还原工具,来自qwerty472123开源者的
准备工作就不讲了,不会就说,有时间了可以专门再说些nodejs。二,查小程序的appid与当前上传的标记
手机,电脑都有软件通过抓包可以查到这些信息,我用的charles,这些我在这里就不说了。
可以看到人人商城官方小程序的appid是wx5d7c9a63ffdf10f8,当前已经上传了30次。
这个30很重要,我们后面找小程序文件的生活就是看这个。
三,用模拟器去获取人人商城小程序的前端文件
前提:安卓模拟器安装微信,RE文件管理器
人人商城前端有好几个文件,因为他们并不是全部写到一起的,而是以模块形式进行的加载。
人人目前主要插件的文件名:积分商城creditshop,砍价bargain,分销commission,拼团groups,快速购买quickbuy,秒杀seckill
通过在安卓模拟器进行微信登陆,进入人人商城小程序的过程,然后通过RE文件把人人商城的前端文件打包下载出来。1:设置超级用户权限
模拟器设置超级用户,自动响应选择自动。2:进人人商城小程序获取模块
并且到处浏览访问下,加载下各个小程序前端文件
3:打开re软件去找前端文件
在目录:data/data/com.tencent.mm/MicroMsg/你的微信标记/appbrand/pkg/4:找到具体的人人商城小程序前端文件
我们刚才通过抓包得知人人商城目前已经上传了30次,所以我们就打包下载这个30的文件。
全选30的文件,然后压缩下tar,zip顺便,然后通过微信或者qq发送出来,发送到你本地电脑里面。
四,利用wxappUnpacker进行解包1:开始用工具解包还原
命令:
隐藏的内容:
node wuWxapkg.js 小程序文件.wxapkg
这个具体到wxappUnpacker官方可以看全部说明
比如我下载到人人小程序文件中,这个_-991772207_30.wxapkg最大,也就是主程序。
那么我的解包还原命令就是:node wuWxapkg.js _-991772207_30.wxapkg
然后就出来下面第三张图的内容了,现在就按照这个把剩下的几个文件都还原了。
2:解包模块文件
比如解包_-2138242260_30.wxapkg文件得到的是快速购买quickbuy文件。
里面有2个小程序格式文件:app-service.js,page-frame.js,还有个文件夹里面的html文件,但是小程序是不用html文件,所以我们要对app-service.js和page-frame.js2个文件进行再次的还原。3:还原模块文件
刚才解包快速购买文件,把app-service.js,page-frame.js剪切到解包工具目录下(你自己怎么方便怎么来)
还原app-service.js用:node wuJs.js app-service.js
还原page-frame.js用:node wuWxml.js page-frame.js
还有个xmss文件是用:node wuWxss.js xxx
由于人人商城这几个插件模块的wxss是进行的调用,所以就不用还原wxss文件了。
按照这个把所有的模块文件都还原,然后合并到主程序去。4:微信开发者工具测试
把刚才解包还原到文件仍到微信开发者工具去看,这个时候就自动有了project.config.json文件。
然后看app.js文件,把里面的appid和接口之类的改成你自己的就行了。
现在就进行功能上的测试,如果要上传就把之前解包出来的html文件都删了,因为微信对小程序前端文件大小是有限制的,所以反编译出来的源码都要自己整理下。
我今天在看人人商城前端的时候有一个文件名是raffle,但是我并没有找到这具体是什么,很久没关注人人了,也没问他们,反正只是教程所以就这样吧。615更新:
小程序前端反编译之人人商城小程序分包还原
最后提醒下,这个可能适合有的人在网上买了盗版程序的,对方不给前端源码,你可以自己尝试去下载前端然后看看。
但是重点要说的是,如果是运营,请尽量用正版程序,玩盗版的人多数根本不会安全和代码审计,所以对方如果留了什么后门,你可能都无法想象,一些安全检测的工具也只是针对已经公开的象征进行预判,这几年用盗版程序最后数据,服务器出事的都很多。
不过除非你信任对方,以及自己能确保源码没问题,那么盗版可以用来玩玩学习研究下,数据也要经常备份,至少一天一次,要真的想运营有远大计划的还是买个正版吧。如果真的没钱买正版程序,找一些做SAAS平台买使用权也行,近年来很多初创团队,中小企业等都选择用saas云服务了。