微信公众号小程序检测之小程序反编译
微信小程序软件包格式为wxapkg,存放在C:\Users\用户名\Documents\WeChatFiles\Applet目录,以wx开头18位字符串文件夹里。
PC微信小程序软件包加了密,文件以V1MMWXQ开头,需要先进行解密才可反编译。wxapkg解密工具:UnpackMiniApp.exe
解密后wxapkg文件无V1MMWXQ字符串
反编译小程序脚本:wuWxapkg.js,需安装node环境。
先解主包:
node wuWxapkg.js./625/ceshi_yjt/__APP__.wxapkg
再解分包:
node wuWxapkg.js ./625/ceshi_yjt/_pages_yjk-sub_.wxapkg -s=./625/ceshi_yjt/__APP__
反编译后的子包文件,根据目录结构替换到主包__APP__文件夹里
将小程序源代码导入微信开发者工具,进行编译、调试
通过以上方法基本可以反编译市面上大部分的微信小程序,比如最近比较近火的游戏“羊了个羊”,该小程序也可以使用同样的方法获得小程序客户端的源代码,查看相关接口调用方法,以及更新之后的游戏通关的检测机制等。
近日,微信团队发布公告,将针对微信小程序开发过程中的安全问题,如代码易被反编译,核心业务逻辑被破译,算法易被二次打包等,导致小程序存在被破解、核心代码被盗取的风险,平台在微信开发者工具上线了代码加固功能,协助开发者保护小程序安全。
1、代码加固功能介绍
小程序代码加固是提供给小程序开发者对小程序前端代码进行加密的功能,以防止代码暴露。该功能可将JavaScript文件传递给加密工具,从而实现字符串加密、属性加密、调用转换、代码混淆等多项保护措施,提高攻击者阅读前端代码逻辑的难度。
2、解决方案
微信开放平台通过在微信开发者工具中提供插件的方式,以便开发者进行功能的使用。同时还提供了Sourcemap代码加固调试工具,来帮助开发者对于加固后的文件进行错误分析。
3、功能使用
1、首先需在微信开发者工具选择代码加固插件进行安装;
2、选择需要加固的文件并进行配置操作,建议加固小程序中的敏感数据信息、核心算法逻辑、关键执行路径、接口(签名算法、协议、密钥等)。
另:界面操作和渲染、引用的第三方开源库等非必要安全保护内容可不进行加固,避免过多影响小程序体积及性能。
3、最后加固成功后可进行后续页面的预览。