【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json

admin 2025年5月24日05:09:45评论4 views字数 1344阅读4分28秒阅读模式

 这是一场试炼 

01

环境版本

环境:

电脑,Windows 11专业版 23H2

软件:

微信,Windows 3.9.12.51

unveilr,2.0.1

微信开发者工具,1.06.2503290

02

操作步骤

1、使用yakit抓包发现请求返回加密,header有一个Aes-Key但是每次值都会变化,下面分析Aes-Key生成和加密解密调用函数逻辑

https://www.yaklang.com/
【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json

2、微信设置-打开文件夹获取路径

【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json

3、删掉目录下全部文件

C:UserszhangsanDocumentsWeChat FilesApplet
【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json

4、刷新小程序,使用unveilr反编译目标APP.wxapkg

【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json

5、微信开发者工具导入反编译后的APP,使用测试号

https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json

6、详情-本地设置

【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json

7、编译报错,app.json: componentFramework 字段需为

 exparser,glass-easel 

componentFramework 字段需为 string

【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json
8、修改app.json,然后点击重新编译,恢复网络请求
"componentFramework": "exparser",
【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json

03

请求分析

9、可以看到控制台输出了请求响应调试信息

【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json

10、跟进去先分析请求加密逻辑,通过u.zO(16)生成一个16字节的随机字符串也就是aes的key,然后使用RSA加密key得到b

【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json

11、往下走,将b和(0, u.zO)(8)随机生成的8位字符串拼接就得到了header中的Aes-Key

【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json

12、微信开发者工具设置代理为yakit监听的8083端口

【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json
13、由于key随机生成不方便调试,修改代码输出key,重新编译
b = c.Z.rsaEncrypt((() => {                       const key = (0, u.zO)(16);                       console.log("key = " + key);                       return key;                   })()),                   console.log("b = " + b),                  S = JSON.stringify({                    data: l.aesEncrypt(b, JSON.stringify({                      action: n.action,                      data: n                    }))                  }),
【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json
14、对比控制台输出和数据包header一致
【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json
15、往下走,进到aesEncrypt函数内部
【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json
16、e是明文,n是key,i是iv,返回值即请求包中的data,后续如果需要rpc在此处修改e即可,这里改成获取pageNumber=2成功获取第二页数据

【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json

04

响应分析

17、进入respose.data位置

【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json
18、断点进入aesDecrypt函数内部
【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json
19、t是key,e是密文,返回值即返回包中的data
【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json
20、对比控制台的e和yakit数据包一致
【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json

原文始发于微信公众号(挖个洞先):【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月24日05:09:45
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.jsonhttp://cn-sec.com/archives/4093337.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息