壹 简介
在平时做微信小程序测试中,有的时候需要获取里面的域名或者ip
等,这时候我们可以将微信小程序进行反编译获取源码。
工具 | 版本 |
---|---|
node |
18.4.0 |
unveilr |
2.0.1 |
微信 | 3.9.8.15 |
贰 小程序反编译
2.1 node下载
安装过程一路NEXT
即可,注意将node
设置为环境变量,安装完成后,通过node -v
查看版本,出现下面界面说明安装成功!node
的官网:传送门
安装教程可以参考这篇:2023年最新Node.js安装详细教程及node.js配置
2.2 小程序解密
首先我们需要加载和运行小程序,在微信中随机搜索一个小程序,然后打开获取小程序包,微信小程序每个地方每个页面都点一下,让其加载完全,否则解密的小程序代码会不全:
然后在微信中打开设置=》
文件管理,需要注意的是这里他打开的文件夹需要跳转到上一级也就是WeChat Files
,然后点击Applet
,这时候会多出来一个wxaaaaaaaaa
形式的文件夹,这个文件夹就是我们需要反编译的小程序:
可以看到进入wxaaaaaaaaa
形式的文件夹后有会数字文件夹,文字文件夹里面就是我们需要的小程序,注意这个__APP__.wxapkg
是主包,其他的都是分包:
接着我们使用工具unveilr.exe
去反编译小程序包,出现Storage has written xx files
,说明解压包成功:
# 编译命令
unveilr.exe [小程序文件夹内全部后缀为.wxapkg的文件]
生成一个__APP__
,该压缩包就是我们要的小程序反编译代码:
接着测试使用微信开发者工具打开该压缩包项目:
这里的AppID
需要我们注册申请,而且我们还要确定文件夹下是app.js
还是game.js
,根据这两个文件来确定是小程序还是游戏,其他的就按照下图操作(这里这个小程序是小游戏,不是小程序):
打开成功,有一些小程序可以运行,有一些可能需要配置其他内容信息,但是基本上整体的反编译就是这样:
2.3 小程序结构说明
pages
是微信小程序里的页面utils
是包含了一些小程序需要的依赖app.js
是运行小程序的关键,game.js
是运行游戏的关键,没有是运行不起来的
2.4 小结
其实反编译一般的小程序前端都是可以的反编译的,只是部分比较复杂,建议找没有后端的小程序反编译,因为有后端反编译了也没啥用,除非自己写后台或者使用别人接口,当然如果需要获取小程序的的域名或者IP
可以通过这种方式获取。
叁 问题
3.1 设置微信开发者工具不需要校验合法域名
在运行微信开发者工具时,我们在详细里选择本地设置选择不校验合法域名。