首页
社区
课程
招聘
[原创]基于 Grok-4.5 的 X-Dynosaur 纯算还原分析
发表于: 1小时前 35

[原创]基于 Grok-4.5 的 X-Dynosaur 纯算还原分析

1小时前
35

版本基准webmssdk 2.0.0.507sdkVersion=5.3.0, scmVersion=2.0.0.507
形态特征:挂载于 URL Query 上的约 392 字符签名参数,通常与 X-Gnarly / X-Bogus 配合出现。

在完整的 API 请求流程中,SDK 通过拦截 HTTP 请求(如 fetch / XHR)并追加签名参数。整体架构可划分为三层:

X-Dynosaur 的外壳加密与 X-Gnarly 保持同构,主要分为 5 个步骤:

每次签名随机生成 48 字节密钥:
keyBytes=randomBytes(48)
拆分为 12 个 32 位小端无符号整数:keyWords[0..11]

根据密钥低 4 位累加和动态推导 ChaCha 迭代轮次:
r=i=011(keyWords[i] & 0xF)(mod16)
rounds=r+5(取值范围 [5,20])

非标准 RFC 8439 ChaCha20 实现,核心差异如下:

注:state[12] 兼作 Counter,每消耗 64 字节密钥流时自动 +1。单轮 Quarter Round 旋转位移保持为 [16, 12, 8, 7],最终叠加初始状态(Feed-forward)。

cipher=plaintextkeystream(keyWords,rounds)

计算校验和确定密钥在密文中的嵌入位置:
mod=len(cipher)+1
sum=(i=047keyBytes[i]+j=0N1cipher[j])(modmod)
insertPos=sum

拼接成中间二进制流:
wire=0x4B cipher[0insertPos1] keyBytes[48] cipher[insertPosN1]

采用映射表置换后的 Base64 编码:

明文由 25 个连续的 Tag-Length-Value (TLV) 段组成,Tag 范围从 0x20 递增至 0x38(无跳号):

部分字段包含尾部标志位(Trailer),格式通常为:[ Payload ] [ 0x00 ] [ Code ]

层级 名称 内容与作用 还原程度
L1 业务输入层 业务 Query、Body、User-Agent、时间戳、计数器等 已知输入入口
L2 逻辑字段层 25 个语义字段,经 VMP 混淆后序列化为自定义 TLV 明文(243~244 字节) TLV 结构已解开;部分 Value 混淆规则在 VMP 内
L3 外壳加密层 48 字节随机密钥 + ChaCha 变体 XOR + 密钥动态嵌入 + 变异 Base64 已完全纯算还原,支持双向 Roundtrip
特性 标准 ChaCha20 WebMSSDK 变体
Sigma 常量 "expand 32-byte k" [0x475D03A6, 0x23CF0377, 0xE648A32B, 0x56891B76]
Key / Nonce 8 词 Key + 3 词 Nonce 12 词全部为动态 keyWords,无独立 Nonce
轮次设定 固定 20 轮 动态推导 520
状态矩阵布局 `[SIGMA(4) KEY(8)
结尾 Code 观察含义
0x01 / 0x02 / 0x03 整型 / 枚举类型标志
0x05 / 0x07 / 0x09 / 0x0A 字符串类型标志(数值多等于前置 Payload 长度)
无后缀 裸 4 字节 uint32(大端序),如 0x2b / 0x2e / 0x30 / 0x38
Tag 典型长度 语义/观察
0x20 6 B 随请求路径/接口变化,Trailer 常见 0x02 / 0x03
0x210x23 6 B 固定的模式串(如 ...dfe00001
0x24 9 B 与 SDK 版本相关(如 5.3.0 的混淆态)
0x25 / 0x2F 6 B 随动态请求变化
0x27 / 0x2C / 0x34 11~12 B 混淆后的长特征串
0x2A 7 B 短特征串
0x2B 4 B GET 请求通常固定为 811c9dc4(空 Body FNV 哈希占位)
0x2E 4 B 强时效/环境上下文相关(Query/时间戳)
0x31 11 B 固定为混淆后的 scmVersion=2.0.0.507 (e3a7cba7cbb7d73f3f0009)
0x38 4 B 校验/异或头字段,如 e207512b
特性维度 X-Gnarly X-Dynosaur
明文结构 16 个字段;[Count][Idx][Len_u16_BE][Val] 25 个字段;[Tag][0x00][Len_u8][Val]
Value 混淆 多为明文 MD5 Hex / 版本字符串 先经 JSVMP 内部逻辑混淆再构建 TLV
外壳加密 ChaCha 变体 + 密钥交织嵌入 + 魔数 0x4B 完全相同
Base64 字符表 变异 Base64 表 完全相同
输出串长度 ~332 字符 ~392 字符
[L1: 业务参数 / 环境信息]
        │
        ▼
[L2: JSVMP 字段处理] ──► 25 段混淆字段 ──► 自定义 TLV 序列化 (243~244 B)
        │
        ▼
[L3: 外壳加密] ───────► ChaCha-XOR 变体 ──► 嵌入 48B 动态 Key ──► 变异 Base64 ──► X-Dynosaur (~392 字符)

[招生]科锐逆向工程师培训(2026年7月3日实地,远程教学同时开班, 第56期)!

收藏
免费 0
打赏
分享
最新回复 (1)
雪    币: 1551
活跃值: (5358)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
2
123123123123
1小时前
0
游客
登录 | 注册 方可回帖
返回