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

如何解码Fiddler捕获的App请求并分析额外传输信息

问题描述

我用Fiddler监控一款App的流量,这款App本该只向服务器发送设备ID和当前固件版本,但实际请求体积远大于预期。以下是捕获到的两条请求示例:

示例1(对应设备ID:T491250XVPY):

Cl1YuDjQu+tK3K1S+A1gevyMuL2orViK3ViK3T8yuW8qsmHwuT8k2T8y5THv3T5i2msisvtl2mNW5m2rtKkrtWLxrnVlu+2rtMZrtM/v2mOl3T8y2Mtk5MIrtKkrtX2ZuvyIBaLluLiK3ViK2Gsi5DtlsG8k5mBVsGsksmtyuMuWsmHxuMjMsmuV5v/w2TLV2mrqujiKF0tdtW1huaQK3K1S+A1irWPQBD2o0O7rtMZrtMtk5T5k2MJi5TJo+Atd+A1Qu+uZsvLDu+1mpDPg+Atz+Atx6Msg5LiK6jiKunLvpD2V0O7rtMZrtV8o3G/l2GNsLVNu+A1PtXo=

示例2(对应设备ID:T491257SEHS):

Cl1YuDjQu+tK3K1S+A1gevyMuL2orViK3ViKunuIuTrvuWLW5D1M2TQkuMVV5GuI5vuW3D5w5GQkuTVrtKkrtWLxrnVlu+2rtMZrtM/v2mOl3Tsi3T8y5mBrtKkrtX2ZuvyIBaLluLiK3ViK5mHy3n2M2v/q5MtouG/v3GJi5GtisGsy2Mtksmsm2TuVuWsosGHq5jiKF0tdtW1huaQK3K1S+A1irWPQBD2o0O7rtMZrtMtk5T5k2MJi5TJo+Atd+A1Qu+uZsvLDu+1mpDPg+Atz+Atx6Msg5LiK6jiKunLvpD2V0O7rtMZrtV8o3G/l2GBG7OIG+A1PtXo=

我已经试过Base64解码和URL解码,但结果里找不到设备ID。想知道这些请求里还传输了哪些额外信息,以及该怎么解码这些数据?


分析与解决方案

1. 明确数据基础编码

你看到的字符串是标准Base64编码(包含+、/、=特征字符),解码后得到二进制数据而非明文——说明数据要么是加密后的结果,要么是二进制序列化(如Protobuf、Thrift)后再Base64编码,或两者结合。

2. 定位关联设备ID的差异字段

对比两个Base64样本,能快速找到差异区域:

  • 示例1对应片段:T8yuW8qsmHwuT8k2T8y5THv3T5i2msisvtl2mNW5m2rtKkrtWLxrnVlu+2rtMZrtM/v2mOl3T8y2Mtk5MIrtKkrtX2ZuvyIBaLluLiK3ViK2Gsi5DtlsG8k5mBVsGsksmtyuMuWsmHxuMjMsmuV5v/w2TLV2mrqujiKF0tdtW1huaQ
  • 示例2对应片段:unuIuTrvuWLW5D1M2TQkuMVV5GuI5vuW3D5w5GQkuTVrtKkrtWLxrnVlu+2rtMZrtM/v2mOl3Tsi3T8y5mBrtKkrtX2ZuvyIBaLluLiK3ViK5mHy3n2M2v/q5MtouG/v3GJi5GtisGsy2Mtksmsm2TuVuWsosGHq5jiKF0tdtW1huaQ

这部分差异大概率和设备ID的加密/序列化结果相关,其余完全一致的部分是固定字段(如请求头部、公共参数)。

3. 解码与分析步骤

步骤1:Base64转二进制,对比差异字节

将两个Base64字符串解码为二进制文件,用二进制对比工具(如WinMerge、Hex Fiend)找出差异字节段。这些字节是关联设备ID的核心数据,后续分析围绕此展开。

步骤2:识别二进制协议

  • Protobuf检测:用protoc --decode_raw命令尝试解析二进制数据,若为Protobuf序列化,会输出字段结构(即使无.proto文件,也能看到字段类型和长度)。
  • 自定义序列化排查:若不是常见协议,观察二进制是否有固定长度字段、重复字节模式,或是否包含字符串长度前缀(如先存1字节表示长度,再存字符串内容)。

步骤3:验证加密可能性

若二进制无明显结构,大概率是加密数据:

  • 将设备ID转为ASCII/UTF-8字节,与差异字节对比,尝试简单加密逻辑:
    • XOR加密:用固定密钥或动态密钥(如设备ID片段)做异或,看是否匹配差异字节。
    • 对称加密:若App用AES、DES等对称加密,需找到密钥和加密模式(ECB/CBC等)——此步骤通常需逆向App。
  • 排除哈希:设备ID长度一致,但差异字节长度与常见哈希(如MD5、SHA1)不符,基本可排除哈希可能。

步骤4:逆向App(终极方案)

若上述方法无效,直接反编译App(用Apktool、Jadx等工具):

  • 定位发送请求的函数,查看参数的加密、序列化逻辑。
  • 跟踪设备ID的获取与拼接流程,看它如何被打包进请求数据。

4. 额外信息推测

从请求体积来看,除设备ID和固件版本外,可能还包含:

  • 设备硬件信息(型号、内存、CPU架构)
  • App版本号
  • 网络状态(WiFi/蜂窝网络类型)
  • 本地缓存的状态数据
  • 请求签名(防止篡改)

这些信息都会被加密/序列化后打包,因此直接Base64解码无法看到明文。


内容的提问来源于stack exchange,提问作者Rich8rd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:55:21