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

2.0 KiB
Raw Blame History

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 10400encData / 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 分类模块导入。

注意:didoDidrdidegidapi_sttokenClientSalt 都不是通用算法常量。它们与设备、账号或登录态绑定,当前样本放在 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 链路当前已拆到:

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_reportunified_log_reportunified_id_mappingunified_repair/fetch/checkRepair 的输入拼接规则。