pc微信hook小程序.wxapkg解码工具

本文详细介绍了如何使用Frida技术hook微信3.2.1.156版本的小程序加密函数WeChatAppHost.dll:EncryptBufToFile,通过捕获参数并解密wxapkg文件。阅读本文,掌握在PC微信环境中进行小程序逆向的实战技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spring cloud架构师教程

 pc微信hook小程序.wxapkg解码工具

 pc微信hook加密小程序函数 

运行结果
运行结果

操作步骤:

  1.   frida -p ${pid of WeChat.exe: root process}
  2.  复制以下脚本 hook 函数 WeChatAppHost.dll:EncryptBufToFile
  3.   pc 微信界面, 左下角, 打开某个小程序, 触发 加密函数 WeChatAppHost.dll:EncryptBufToFile

代码


/* 
pc微信hook加密小程序函数
1. frida -p ${pid of WeChat.exe: root process}
2. 复制以下脚本 hook 函数 WeChatAppHost.dll:EncryptBufToFile
3. pc 微信界面, 左下角, 打开某个小程序, 触发 加密函数 WeChatAppHost.dll:EncryptBufToFile

pc微信版本:  微信 3.2.1.156
*/

var baseAddr = Module.findBaseAddress('WeChatAppHost.dll');
console.log('WeChatAppHost.dll baseAddr: ' + baseAddr);


var EncryptBufToFile = Module.findExportByName('WeChatAppHost.dll','EncryptBufToFile');

if (EncryptBufToFile) {

    // EncryptBufToFile函数偏移地址, 从DLL中查看
    // var EncryptBufToFile = baseAddr.add(0x1800F);
    console.log('EncryptBufToFile 函数地址: ' + EncryptBufToFile);

    // HOOK函数, 监听参数
    Interceptor.attach(EncryptBufToFile, {
        onEnter: function (args) {
            console.log(`${args[0]},${args[1]},${args[2]},${args[3]}`);
            // 微信小程序AppId
            this.appId = ptr(args[0]).readPointer().readAnsiString();
            // 微信小程序本地缓存文件路径
            this.apkgFilePath = ptr(args[1]).readPointer().readAnsiString();
            // 小程序代码原始内容(未加密)
            this.originalData = Memory.readByteArray(args[2], args[3].toInt32());
        },
        onLeave: function (retval) {
            console.log('文件解密成功', this.apkgFilePath);

            // 将文件替换为未加密的wxapkg包
            var f = new File(this.apkgFilePath, 'wb');
            f.write(this.originalData);
            f.flush();
            f.close();

            // 释放内存
            delete this.appId;
            delete this.apkgFilePath;
            delete this.originalData;
        }
    });
    
} else {
    console.log('WeChatAppHost.dll 模块未加载, 请先打开界面中的小程序面板');
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ziix

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

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

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

打赏作者

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

抵扣说明:

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

余额充值