小程序逆向工程:这个开源的小程序逆向工具真不错,2023年亲测成功

前言

安全部门的大哥又双叒叕报了一个小程序的高危漏洞,他使用逆向工程破解了加密信心,用抓包修改了请求参数。又是头疼的一天…

想成为一名微信小程序的开发者,前端思路的学习和安全意识是非常有必要的,故务必掌握小程序反编译技能。

这里用到了2个工具《解密》与《逆向》(非原创,均来自网上的大佬)。

特别适合新手,而且都是免费的!都是免费的!都是免费的!第一次操作可能会慢一些,熟练了之后,3秒抓取一个小程序源码!

工具准备

下载地址:https://gitee.com/jiangsihan/wechat-applet-reverse-tool

包含:逆向工具、解密工具
在这里插入图片描述

逆向工具

目前用的是:wxappUnpacker

在这里插入图片描述

这个是一个大神开发的,之前可以在github下载,不过截止今天,大神已经关闭了下载,具体原因……你懂得。不过,开源是趋势,就像这个世界是不会停止开放的,因此我们还是有很多渠道可以获取,你可以通过自己的渠道获取,或者用我为你准备好的。

解密工具

在这里插入图片描述

先解密

网上有很多教程,是分苹果和安卓的,还要用到模拟器,其实不用那么麻烦,直接用微信PC客户端就可以了。

1、找到文件管理的位置

在这里插入图片描述
Applet 是存放小程序编译包的,
在这里插入图片描述
这里面存放的都是打开过的小程序包文件

2、打开小程序

在pc端打开一个小程序,尽可能点开所有的页面,让本地自动生成一个本地包,在刚刚设置好的文件夹里:

在这里插入图片描述
不过里面的是加密过的文件:APP.wxapkg就需要用到我们前面的解密软件。

在这里插入图片描述

3、解密

选择小程序的加密包,0.1秒解密成功:
在这里插入图片描述
加密后会存放在wxpack里面:

在这里插入图片描述

再逆向

正式用到大神开发的【wxappUnpacker】了。下面的操作,都是在cmd命令窗口中操作的,需要强调的是,必须在wxappUnpacker路径里才可以,简易方法是,直接在【wxappUnpacker】文件夹的地址栏里输入cmd即可。

1、逆向准备

打开逆向工具文件夹,直接输入cmd打开命令板:

在这里插入图片描述
检查是否有node环境啊!!

安装依赖,挨个执行:

npm install
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify

2、正式逆向

把刚才wxpack下的解密包直接拖过来:

bingo.bat 主包路径(可以直接拖入)

在这里插入图片描述

编译后的文件,会保存在wxpack文件包下:

在这里插入图片描述
OK,编译完成,接下来直接使用微信开发工具打开,即可学习前辈们的前端设计了,骚年。

3、可能的错误

如果在执行编译命令时报:

this package is a subPackage which should be unpacked with -s=<MainDir>.

说明这个是分包,打开小程序时生成了两个.wxapkg文件,编译另一个文件即可,编译分包和主包的命令是不一样的:

node ./wuWxapkg.js 分包路径 -s=主包路径

4、如果生成的文件里不包含app.json文件

说明你找的小程序,是大神开发的,已经做了反编译的安全措施,所以解密失败,这也是我发这篇文章的目的。不过这种大神目前还是比较少见的。

还是那句话:有心之人防不住,无心之人不用防。没有绝对,只有相对!

### 微信小程序逆向工程概述 微信小程序逆向涉及多个步骤和技术,主要包括获取目标应用的小程序包、解密这些包以及最终解析其内部结构。此过程通常需要特定的软件环境和支持工具来辅助操作。 #### 准备工作 为了顺利开展逆向活动,需先准备好必要的硬件和软件条件: - **设备选择**:可以选择真实Android手机或虚拟机作为实验平台[^2]。 - **权限设置**:确保所选设备已开启USB调试模式并授予Root权限给RE管理器以便后续访问受保护的数据区域[^3]. - **开发环境搭建**:安装Node.js运行时环境用于执行JavaScript脚本;同时下载并配置好官方提供的微信开发者工具以方便后期试修改过的代码逻辑[^1]. #### 获取与处理wxapkg文件 当一切就绪之后,则可以着手提取待分析的应用数据了。具体做法如下: 1. 利用ADB命令连接至移动终端,并定位到存储有最新版本的小程序资源包(`*.wxapkg`)所在的路径下; 2. 通过`adb pull`指令将远程服务器上的指定文件复制回本地磁盘中等待进一步处置; 3. 接下来借助专门为此目的而打造的第三方库——比如由GitHub托管开源项目的`wxappUnpacker`——来进行初步拆分作业,从而获得原始JS/CSS/WXML等静态资产副本[^4]. ```bash # 假设已经找到正确的wxapkg路径 adb pull /data/data/com.tencent.mm/MicroMsg/{random_folder}/appbrand/pkg D:\output_directory\ ``` #### 实际案例展示 假设现在有一个名为`example.wxapkg`的目标文件位于D盘根目录里,那么只需按照提示依次键入下列命令行参数就能启动整个转换流程了: ```batchfile bingo.bat "D:\example.wxapkg" ``` 上述批处理脚本会自动生成一个新的子文件夹用来容纳所有经过反序列化后的成果物,其中包含了可供编辑查阅的各种网页组件描述文档. ### 注意事项 在整个过程中务必谨慎行事以免触犯法律法规或者侵犯他人版权权益。此外由于此类行为本身存在一定的风险性和不确定性因素,在实际动手之前建议充分评估潜在后果再做决定。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端江太公

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值