ksjsb/core/README.md
2026-07-30 20:25:56 +08:00

43 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# core 算法模块
已还原算法按职责拆分到以下入口:
- `core.sig`: `sig`, `build_sig_plaintext`, `body_md5`
- `core.tokensig`: `__NStokensig`,调用方显式传入账号的 `client_salt`
- `core.sig3`: KWSG `10418``__NS_sig3`
- `core.xfalcon`: `__NS_xfalcon` digest / `$TE_` / value
- `core.enc_data`: KWSG `10400``encData` / ZT envelope
- `core.atlas_sign`: 通用 `atlasSign` 短 ZT envelope
`head8 + xor16(24-byte digest)`
- `core.reward_sign`: reward body `sign`
- `core.dfp_sign`: DFP / unifiedId 的 `10405 atlasSign` 输入拼接与签名封装
- `core.device_id`: Java 层可见的 `did` / `oDid` / `rdid` 本地派生辅助和 `egid` 格式校验
- `core.constants`: 静态算法常量
- `core.captured_profile`: 当前抓到的本机/账号样本值
`core.kwsg` 只作为旧代码兼容聚合层,不再放算法实现。`out/*` 中的分析
和请求构造脚本优先从 `core` 分类模块导入。
注意:`did`、`oDid`、`rdid`、`egid`、`api_st`、`tokenClientSalt`
都不是通用算法常量。它们与设备、账号或登录态绑定,当前样本放在
`core.captured_profile`,换账号/设备时应替换 profile。`core.device_id`
只覆盖 APK Java 层已经定位到的本地派生路径;`egid` 仍走 DFP/KSecurity
链路,当前不要伪造成简单 hash。
`oDid` 当前已确认是初始化阶段保留下来的原始本地 DID
`FoundationInfoInitModule -> deviceid/i.e() -> ss9/a.b`,公共参数
`q01/g.getODid()` 最终读取 `ss9.a.b`。后续云端刷新 `did` 时只更新
`ss9.a.a`,不会覆盖 `ss9.a.b`
`egid` 链路当前已拆到:
```text
DFP lite kNN -> sq0.b -> core.enc_data.kwsg_10400_raw(deviceInfo)
DFP form -> core.dfp_sign.dfp_atlas_sign(sign)
```
`10405 atlasSign` 与已还原的 `10418` sign 分支共用
`innerFlag=true` digest 管线;区别主要在输入字符串由 DFP Java builder
决定。`core.dfp_sign` 固化了 `gdfp_report`、`unified_log_report`、
`unified_id_mapping`、`unified_repair/fetch/checkRepair` 的输入拼接规则。