当前位置:   article > 正文

pc微信hook小程序.wxapkg解码工具_pc微信小程序一键解密

pc微信小程序一键解密

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

代码

  1. /*
  2. pc微信hook加密小程序函数
  3. 1. frida -p ${pid of WeChat.exe: root process}
  4. 2. 复制以下脚本 hook 函数 WeChatAppHost.dll:EncryptBufToFile
  5. 3. pc 微信界面, 左下角, 打开某个小程序, 触发 加密函数 WeChatAppHost.dll:EncryptBufToFile
  6. pc微信版本: 微信 3.2.1.156
  7. */
  8. var baseAddr = Module.findBaseAddress('WeChatAppHost.dll');
  9. console.log('WeChatAppHost.dll baseAddr: ' + baseAddr);
  10. var EncryptBufToFile = Module.findExportByName('WeChatAppHost.dll','EncryptBufToFile');
  11. if (EncryptBufToFile) {
  12. // EncryptBufToFile函数偏移地址, 从DLL中查看
  13. // var EncryptBufToFile = baseAddr.add(0x1800F);
  14. console.log('EncryptBufToFile 函数地址: ' + EncryptBufToFile);
  15. // HOOK函数, 监听参数
  16. Interceptor.attach(EncryptBufToFile, {
  17. onEnter: function (args) {
  18. console.log(`${args[0]},${args[1]},${args[2]},${args[3]}`);
  19. // 微信小程序AppId
  20. this.appId = ptr(args[0]).readPointer().readAnsiString();
  21. // 微信小程序本地缓存文件路径
  22. this.apkgFilePath = ptr(args[1]).readPointer().readAnsiString();
  23. // 小程序代码原始内容(未加密)
  24. this.originalData = Memory.readByteArray(args[2], args[3].toInt32());
  25. },
  26. onLeave: function (retval) {
  27. console.log('文件解密成功', this.apkgFilePath);
  28. // 将文件替换为未加密的wxapkg包
  29. var f = new File(this.apkgFilePath, 'wb');
  30. f.write(this.originalData);
  31. f.flush();
  32. f.close();
  33. // 释放内存
  34. delete this.appId;
  35. delete this.apkgFilePath;
  36. delete this.originalData;
  37. }
  38. });
  39. } else {
  40. console.log('WeChatAppHost.dll 模块未加载, 请先打开界面中的小程序面板');
  41. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/524992
推荐阅读
相关标签
  

闽ICP备14008679号