🔓 /game/koh/profile 响应体解密工具

复现 MineApi.getKohProfile() 响应解密流程 — Base64 → XXTEA → [GZIP] → Protobuf

① Base64 解码 ② XXTEA 解密 ③ GZIP 解压 ④ Protobuf 解析

输入参数 必填

调试工具

Protobuf 手动解析 可选

解密后的字节为 Protobuf 编码的 GetKohProfileRsp 消息。
由于缺少 .proto 定义文件,此处提供通用的 Protobuf 字段解析。

解密状态

等待输入...
解码后 解密后 最终结果 Hex视图

日志输出

解密流程详解

① ResponseDecryptNewInterceptor

OkHttp 拦截器,检测响应头 campencrypt=true

• 从 AccountManager 获取当前用户 userId

• 从 NetSecurityService 获取 userKey

Base64.decode(bytes, 0) → 解码

XXTEA.decrypt(decoded, userKey) → 解密

② XXTEA 算法

Corrected Block TEA,32位整数块操作:

• Delta 常量: 0x9E3779B9

• 轮数: q = 6 + 52 / (n+1)

• 密钥不足4个int自动补零

• 小端序字节转换

• 末位int存储原始字节长度

③ ZipInterceptor

检测响应头 GH-gzip=true

• 使用 GZIPInputStream 解压

• 1024字节缓冲区逐块读取

④ SmobaProroResBodyConverter

Protobuf 反序列化:

• 反射获取 GetKohProfileRsp.parser()

parser.parseFrom(inputStream, registry)

• 输出 Profile.GetKohProfileRsp 对象