首页
社区
课程
招聘
[转帖]【银行逆向百例】03小程序逆向之微信开发者工具反编译修复app.json
发表于: 2025-6-3 10:15 120

[转帖]【银行逆向百例】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数据包一致

            图片





            [培训]科锐逆向工程师培训第53期2025年7月8日开班!

            收藏
            免费 0
            支持
            分享
            最新回复 (0)
            游客
            登录 | 注册 方可回帖
            返回