You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android应用请求数据编码格式解析求助:无法解码获取JSON

解决Android应用加密请求体的解码问题

你遇到的情况是请求体经过加密处理后再做Base64编码,所以直接Base64解码得不到明文JSON。结合请求头里的x-requested-with: com.bo.hooked,说明目标应用对请求数据做了自定义加密,以下是具体的解决思路:

一、确认加密类型

  • 检查请求头是否存在加密标识字段(比如x-encrypt-algorithm、x-key-version等),如果有可直接对应算法解密;但你提供的请求头里没有这类字段,大概率是应用内置的加密逻辑。
  • 反编译目标应用(推荐用Jadx工具),定位com.bo.hooked包下的网络请求相关类,查找请求体的加密代码,通常会调用AES/DES、RSA或者自定义加密方法。

二、常见加密场景的处理方法

1. 对称加密(AES/DES为主)

如果是AES/DES加密后Base64编码:

  • 从反编译代码中查找硬编码的密钥(Key)和初始向量(IV),通常会以字符串或byte数组形式存在。
  • 拿到密钥和IV后,用对应算法(比如AES/CBC/PKCS7Padding)解密Base64解码后的字节数组,即可得到明文JSON。

2. 非对称加密(RSA)

如果是RSA加密:

  • 通常应用会用服务器下发的公钥加密请求体,这种情况需要Hook应用的加密方法,或者获取到私钥才能解密(难度较高,更推荐动态Hook)。

3. 自定义加密算法

如果是应用自研的加密逻辑:

  • 反编译后分析加密函数的逻辑,手动复现解密过程;或者用动态调试工具(比如Frida)Hook加密方法,直接获取明文请求数据。

三、Fiddler配合动态Hook的实操方案

  1. 先绕过应用的证书校验:用Xposed模块JustTrustMe或者Frida脚本禁用SSL证书校验,确保Fiddler能正常抓取HTTPS请求。
  2. 用Objection或Frida Hook应用的加密方法:
    • 定位到加密请求体的函数,Hook该函数的返回值,直接获取明文;或者Hook输入参数,查看加密前的原始JSON数据。
    • 示例Frida脚本思路(伪代码):
      Java.perform(function() {
          var EncryptUtils = Java.use("com.bo.hooked.utils.EncryptUtils");
          EncryptUtils.encryptRequest.implementation = function(jsonStr) {
              console.log("明文请求体:", jsonStr);
              return this.encryptRequest(jsonStr);
          }
      });
      

内容的提问来源于stack exchange,提问作者Даня

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 19:10:34