-
-
[转帖]【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json
-
发表于: 2025-6-3 10:15 120
-
“ 这是一场试炼 ”
01
—
环境版本
环境:
电脑,Windows 11专业版 23H2
软件:
微信,Windows 3.9.12.51
unveilr,2.0.1
微信开发者工具,1.06.2503290
02
—
操作步骤
1、使用yakit抓包发现请求返回加密,header有一个Aes-Key但是每次值都会变化,下面分析Aes-Key生成和加密解密调用函数逻辑
a3cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2&6j5h3E0D9j5h3&6Y4i4K6u0W2j5$3!0E0i4K6u0r3
2、微信设置-打开文件夹获取路径
3、删掉目录下全部文件
C:\Users\zhangsan\Documents\WeChat Files\Applet
4、刷新小程序,使用unveilr反编译目标APP.wxapkg
5、微信开发者工具导入反编译后的APP,使用测试号
005K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0K6i4K6u0W2N6$3g2A6P5r3W2F1i4K6u0W2M7i4q4Q4x3X3g2U0L8$3#2Q4x3V1k6E0K9h3&6A6M7s2u0G2k6%4u0S2L8g2)9J5c8X3c8W2N6W2)9J5c8X3c8W2N6Y4c8G2L8$3I4K6i4K6u0r3k6r3!0%4L8X3I4G2j5h3c8Q4x3X3g2Z5N6r3#2D9
6、详情-本地设置
7、编译报错,app.json: componentFramework 字段需为
exparser,glass-easel
componentFramework 字段需为 string
8、修改app.json,然后点击重新编译,恢复网络请求
"componentFramework": "exparser",
03
—
请求分析
9、可以看到控制台输出了请求响应调试信息
10、跟进去先分析请求加密逻辑,通过u.zO(16)生成一个16字节的随机字符串也就是aes的key,然后使用RSA加密key得到b
11、往下走,将b和(0, u.zO)(8)随机生成的8位字符串拼接就得到了header中的Aes-Key
12、微信开发者工具设置代理为yakit监听的8083端口
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 })) }),
14、对比控制台输出和数据包header一致
15、往下走,进到aesEncrypt函数内部
16、e是明文,n是key,i是iv,返回值即请求包中的data,后续如果需要rpc在此处修改e即可,这里改成获取pageNumber=2成功获取第二页数据
04
—
响应分析
17、进入respose.data位置
18、断点进入aesDecrypt函数内部
19、t是key,e是密文,返回值即返回包中的data
20、对比控制台的e和yakit数据包一致
赞赏
- [原创]【银行逆向百例】09小程序逆向之禁用调试模式+动态密钥+JsRpc+Yakit hijackSaveHTTPFlow热加载 68
- [原创]【银行逆向百例】08小程序逆向之JsRpc+Yakit hijackSaveHTTPFlow热加载实现明文流量显示 277
- [原创]【银行逆向百例】07小程序逆向之微信开发者工具反编译修复分包内容缺失+登录失败openid替换 194
- [转帖]【银行逆向百例】06小程序逆向之WeChatOpenDevTools-Python开启Devtools+跟踪调用堆栈 112
- [转帖]【银行逆向百例】05小程序逆向之微信开发者工具反编译修复插件未授权+WXSS+WXML格式错误 88