如何反编译小程序-无需模拟器,直接解密反编译小程序的最简单方法

请关注公众号【叨客共享】 在使用网站的过程中有疑问,请来公众号进行反馈哦

微信小程序反编译可以通过对小程序包进行反编来获取小程序源码,在一次信息收集的过程中对某公司的APP、微信公众号、小程序进行抓包数据分析寻找接口等有用的信息时,在抓包过程中由于微信的反抓包机制实际测试过程中遇到一些问题,导致通过直接抓包的方式抓取小程序数据失败。后通过一些方式了解到小程序反编,于是想到是否可以采取这种方式反编小程序后进行源码审计。这篇文章主要介绍了微信小程序反编的方法在这里与大家进行分享一同学习。

本次为大家带来的是小程序反编译工具神器unveilr——一键解分包

✨新版本特性

  • 🔥支持自动解密(windows从路径上提取wxAppId)
  • 🔥自动合并子包
  • 🔥支持解析最新版wxapkg (APP_V3/APP_V4/APP_SUBPACKAGE_V2)
  • 🔥支持解析最新版小程序插件 (APP_PLUGIN_V1)
  • 🔥采用@babel/core直接解析语法树,精准提取源码(1.x是正则提取)

一、首先下载反编译工具

下载地址:

https://drive.uc.cn/s/324f2828efce4

卡密购买地址:https://shop.openal.lat

叨客专属优惠码:最高可优惠120元!!

天卡:daoke-1

三天卡:daoke-2

月卡:daoke-3

年卡:daoke-4

二、获取小程序包

本工具可以直接通过电脑版微信获取,无需再下载模拟器!!

1.确定微信文件保存路径

20231128190307351-1701169387-image

 

2.选择打开文件夹,然后返回上层,找到Applet文件夹

20231128190417823-1701169457-image

20231128190456930-1701169496-image

在Applet文件夹下,就是小程序路径

 

3.打开小程序,尽可能把程序的页面都浏览一遍,确认加载完整所有分包

4.打开Applet文件夹下的wx开头文件夹(以wxd05cfe5c3529ad94为例),点击数字文件夹(21),里面的__APP__.wxapkg就是主包(如果有分包的话,同样会显示在一起)。

20231128192052576-1701170452-image

 

5.将__APP__.wxapkg转移到wxd05cfe5c3529ad94文件夹内,即,和数字在同一级

20231128192408463-1701170648-image

 

6.将wxd05cfe5c3529ad94文件夹复制到和工具同一级

20231128192627888-1701170787-image

 

3.工具的使用

下面以windows为例

1.打开终端(管理员)

定位到工具所在路径,如

cd E:\小程序\反编译

20231128193048539-1701171048-image

 

2.使用卡密

.\unveiler@2.4.1-win-x64.exe -T 495211b7-4d3d-44b6-8404-be90977ed47e
//unveiler@2.4.1-win-x64.exe为工具完整名字
//T为消耗token,增加使用时长
// 495211b7-4d3d-44b6-8404-be90977ed47e为卡密
//千万注意空格!!

20231128193431302-1701171271-image

显示上面的字样就是成功了。

卡密购买地址:https://shop.openal.lat

叨客专属优惠码:最高可优惠120元!!

天卡:daoke-1

三天卡:daoke-2

月卡:daoke-3

年卡:daoke-4

 

3.使用工具

wxd05cfe5c3529ad94文件夹复制到和工具同一级时,直接使用即可

.\unveiler@2.4.1-win-x64.exe wx -f wxd05cfe5c3529ad94

 

还有其他命令行

子命令 参数 解释
  -l, --log-level <level> 设置日志等级 debuginfowarnerror 默认 info
  -v, --version 打印版本号并退出
  -P, --profile 显示当前设备信息并退出
  -T, --use-token <token> 消耗token增加可用时长并退出
  -U, --update 检查更新和升级
  -C, --clean-cache 清除缓存并退出
  -X, --set-proxy <proxy> 手动配置代理,默认取 env.HTTPS_PROXY
  --unset-proxy 取消配置代理
wx-hook   自动开启devtools并且过掉checksum
wx <packages...> 包的路径,可以是多个,也可以是一个目录
wx -s, --scan-sensitive 开启敏感信息扫描
wx -i, --appid <appid> 手动提供appid (仅在评估windows上的包时有效)
wx -f, --format 格式化输出
wx --no-clear-parsed 解析后的残留文件将不会被清除
wx --no-clear-save 不清除已经存在的解析结果
wx --no-parse 只提取文件,但不会解析
wx --clear-output 当输出目录不为空时程序将终止,提供该参数表示强制清空输出目录
wx -d, --depth <depth> 设置从目录中查找深度,默认: 1 设置为0时不限制深度
wx -o, --output <path> 设置输出目录
wx -p, --pack 将目录打包
wx -w, --watch 监听将要打包的文件夹,并自动打包
wx -e, --encrypt 将目录打包并加密
wx -h, --help 打印帮助信息

 

📝常用示例

以下命令的 unveiler 只是示例,实际使用时根据具体情况替换,windows 可能是 unveiler@xxx.exe等等

1.全局参数示例

  • 代理可以自己指定,也会自动读取环境变量 https_proxy (不区分大小写)
  • 配置代理 unveiler -X http://127.0.0.1:8080
  • 取消代理 unveiler --unset-proxy
  • 查看设备信息 unveiler -P
  • 检查更新版本 unveiler -U
  • 清除程序缓存 unveiler -C (一般出现异常后尝试使用此参数)
  • 使用token unveiler -T xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

2.代码审计

现在解包相关的都需要带上 wx 子命令

  • 常规使用 unveiler wx /path/to/pkg/dir

  • 指定输出路径 unveiler wx /path/to/pkg/dir -o /path/to/output/dir

  • 格式化输出结果 unveiler wx -f /path/to/pkg/dir

3.敏感信息扫描

  • 开始敏感信息扫描 unveiler wx -sf /path/to/pkg/dir

4.打包功能的使用

  • 目前比较稳定的打包是打包未被解析的源文件
  • 所以建议整两套代码,一套用于审计,一套用于打包
  • 目前只能每次打包一个文件
  • 假设现在的目录为 /path/to/pkg/__APP__.wxapkg
  1. 只提取单个包而不做解析 unveiler wx --no-parse -f /path/to/pkg/__APP__.wxapkg -o /dist/__APP__
  2. 改动了代码之后在 /dist/__APP__ 同步修改(自行搜索找到对应位置)
  3. 开始打包 unveiler -p /dist/__APP__
  4. 若要频繁修改建议使用 -w 参数,
  • 可以在 /dist/__APP__ 文件夹下有文件改动时将会自动打包
  • 例如:unveiler -wp /dist/__APP__
  • 打包后重新替换需要开启 wx-hook
熊猫社区(资源合集)
点击链接https://fh.leobba.cn/tzSn
即可加入「熊猫社区2群」网盘群,群组内还有敏/感|易/和谐资源等待大家
或者夸克APP内搜索群号:1839152435
网课资源|网盘群组
点击链接https://fh.leobba.cn/QX54
即可加入考研、考公考编、四六级、计算机等级考试、教师编等【免费网课网盘群组】
易和谐资料优先在群组内补发
或者夸克APP内搜索群号:970062162
© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发
头像
小提示:点击【打卡】即可实现快速回复哦~~请不要回复单数字、英文和无意义的汉字,否则无法评论哦
提交
头像

昵称

取消
昵称表情

    暂无评论内容

评论提示

小提示:点击【打卡】即可实现快速回复哦~~请不要回复单数字、英文和无意义的汉字,否则无法评论哦