Files
coruna-lab-web/frontend/doc/NATIVE_PACKS.md
T
hashbro 6447081ed9 init
2026-08-08 04:33:05 +08:00

7.2 KiB
Raw Blame History

一级包与二级包

路径

线上:同一相对目录。 Stage JS、一级包、二级包都从 campaign base 用文件名下载:

{base}/70049138….js          # Stage
{base}/6539c1e0….js          # 一级包(wire 后缀 .js)
{base}/65704c07….min.js      # 二级 type-0x01 包(wire 后缀 .min.js)

base = /web/34f5121f572d6742703eb84ec2f866a6/(lab 已摊平到同路径)。

Wire 后缀(实测)

类型 客户端实际请求 说明
Stage JS <40hex>.js 无 .min.js
一级原生包 <40hex>.js 按机型/版本选 flags;不是 .min.js
二级 type-0x01 <40hex>.min.js type 0x07 元数据里的文件名带 .min.js

Campaign / lab 目录里同一 stem 常同时存在 .js 与 .min.js,且内容不同(.js 通常更大)。链路只拉上表对应后缀;另一份是同 stem 的另一产物,不要当成重复别名删掉。

coruna-online 落盘为分析拆目录,不是三条不同 URL:

类型 线上相对路径(wire) coruna-online 落盘
Stage JS / 入口 {base}/<name> 仓库根目录(见 STAGE_JS.md)
一级原生包 {base}/<40hex>.js 历史多落在 payloads/<40hex>.min.js;以线上 .js 为准同步到 lab
二级 type-0x01 {base}/<40hex>.min.js c2_fetch/<40hex>.min.js(部分副本带 xxxxxxxx_ 前缀,lab 已归一)

联系

Stage3
  → 下载「一级包」.js(按机型/版本选 flags)
  → 解密 → F00DBEEF:0x08 / 0x09 / 0x0f / (0x0a) + **type 0x07 元数据**
  → type 0x07 给出二级文件名 + ChaCha key
  → 再下载「二级包」.min.js
  → 解密 → F00DBEEF type **0x01**(SpringBoard 管理器,含 Deployment DGA)
  → DGA → /sync/daily.html → sync/ 下 26 个模块
层级 线上看起来 解开后 作用
一级包 ChaCha 加密 .js F00DBEEF:利用/implant(0x08 powerd、0x09、0x0f 等)+ 0x07 指针 提权与落地;0x07 点名二级包
二级包 另一 key 的 .min.js(key 在 0x07) F00DBEEF:仅 type 0x01 dylib DGA、拉 daily.html、下模块、注入

一级 ≠ type-0x01;靠一级内的 0x07 才接到二级。一级失败则不会拉对应二级包。


一级包一览(payloads/ → lab web/…/)

清单文件名按 wire(.js) 书写。lab 中同 stem 的 .min.js 为另一份线上产物,体积更小,链路默认不请求。

lab / 线上文件名(wire) flags 内含类型 coruna-online 来源(历史落盘名)
054bcb73ce2a3023b3813f5be12d0b6ffd6e7611.js 0xf230 0x08, 0x09, 0x0f, 0x07, 0x07 payloads/054bcb73….min.js
e406714e92671b5218496fcb6666734411cb2320.js 0xf330 0x08, 0x09, 0x0f, 0x07, 0x07 payloads/e406714e….min.js
694c829e379e12085de6158b85f32509f54f4796.js 0xf240 0x08, 0x09, 0x0f, 0x07, 0x07 payloads/694c829e….min.js
3b0133801a3f844e7ebafa0363f2423a50005b72.js 0xf340 0x08, 0x09, 0x0f, 0x07, 0x07 payloads/3b013380….min.js
6f8a7a3bc74d9c65f5463a6a29d4e2c52feefcca.js 0xf270 0x08, 0x09, 0x0f, 0x07, 0x07 payloads/6f8a7a3b….min.js
eb3e81b54e8763bfe505e7a18be8f5fd828a76f6.js 0xf370 0x08, 0x09, 0x0f, 0x07, 0x05, 0x09, 0x07 payloads/eb3e81b5….min.js
6bbb364c8a423374d42a2cbc45c0dee84e7dc710.js 0xf280 0x08, 0x09, 0x0f, 0x07, 0x07 payloads/6bbb364c….min.js
99010a27e08b3312650c8d9f321958433e577a30.js 0xf380 0x08, 0x09, 0x0f, 0x07, 0x07 payloads/99010a27….min.js
6539c1e0dc731ea7c7011af236cc7c2871af7c40.js 0xf290 0x08, 0x09, 0x0f, 0x07, 0x07 payloads/6539c1e0….min.js
c9118a62558ed444a64c2dfe350c6c57fa277a3a.js 0xf390 0x08, 0x09, 0x0f, 0x07, 0x05, 0x09, 0x07 payloads/c9118a62….min.js
076de672aebfc78137aa863e51ff3d8980dcdd10.js 0xf373 0x08, 0x09, 0x0f, 0x07, 0x0a, 0x07 payloads/076de672….min.js
62415a3d105a8c40c41b19cf456e8474fe441359.js 0xf383 0x08, 0x09, 0x0f, 0x07, 0x0a, 0x07 payloads/62415a3d….min.js
a5847c3e2e439e2f7c4b1582932cf81a06100981.js 0xf275 0x08, 0x09, 0x0f, 0x07, 0x0a, 0x07 payloads/a5847c3e….min.js
f7994d47ee03dfb33e0fc7df94c8a215ff8fe66a.js 0xf375 0x08, 0x09, 0x0f, 0x07, 0x0a, 0x07 payloads/f7994d47….min.js
a13a74c0123f5a0c4acaf0586f035f8735bac0c8.js 0xa205 0x08, 0x0a payloads/a13a74c0….min.js
f10b572f33adf343a7398487c3f4cc71088b56ab.js 0xa305 0x08, 0x0a payloads/f10b572f….min.js
906a996fa11bcaa5347c6453e328f538d17d5dbf.js 0xa306 0x08, 0x0a payloads/906a996f….min.js
4614dd1cf7c0b41d0443e1a1a306706fb94a2bb6.js 0xa303 0x08, 0x0a, 0x0a payloads/4614dd1c….min.js
d1a39a282f3dc9d0e261c3df466093ee0f8d441d.js 0xa304 0x08, 0x0a, 0x0a payloads/d1a39a28….min.js

解出的中间 dylib:coruna-online/payloads/*_type0xNN.dylib(lab 未复制)。


二级包一览(c2_fetch/ → lab web/…/)

均为 type 0x01 SpringBoard helper(含 DGA)。Wire 文件名为 .min.js。

为何 10 个二级包、实质只有 2 份 dylib:

dylib SHA-256(前 16) 体积 stem 数 成员
8bef11cb6cdf18f9… 347472 5 039c68f0 / 34736715 / 65704c07 / 6bac8b93 / 743312ca
124f9b07b58c90c3… 362056 5 1d0df5a0 / 242a0afb / 630c2b42 / 7cb20652 / 7f208248

差异在投递包装,不是两套 DGA:各一级包的 type 0x07 点名不同 <stem>.min.js 并带不同 ChaCha key;两条构建内 Deployment/Reporting seed 相同。改 seed:改 2 个唯一 dylib → 用各自 type07 key 重加密要用到的二级 .min.js(要覆盖全部一级变体则 10 个都重打)。

lab / 线上文件名 coruna-online 来源 说明
039c68f0ca742a85e94516818385a9eca2e204d8.min.js c2_fetch/039c68f0….min.js 二级 type-0x01
1d0df5a0a12a20aa8b0c8aeb660742268f311d19.min.js c2_fetch/1d0df5a0….min.js 二级 type-0x01
242a0afb1d88b83e9a1a5b570fed6778def892fc.min.js c2_fetch/242a0afb….min.js 二级 type-0x01
347367155da44f3efcc9053337913061079610b9.min.js c2_fetch/34736715….min.js 二级 type-0x01
630c2b42300333d91588353d43afab9ec8325e09.min.js c2_fetch/630c2b42….min.js 二级 type-0x01
65704c0722165a7bdedad3f3f61258b2f95470f6.min.js c2_fetch/65704c07….min.js HAR 中出现过的二级包之一
6bac8b93b6f97ddd8a1f86fecfa6431b9ffeb9fb.min.js c2_fetch/6bac8b93….min.js 二级 type-0x01
743312cafb58176af57b89098d94dca1c60f8d1e.min.js c2_fetch/743312ca….min.js 二级 type-0x01
7cb20652ef7156e931f894dd3d99f24601b80368.min.js c2_fetch/7cb20652….min.js 二级 type-0x01
7f208248c748f97956fe4a7cf246c91235852e67.min.js c2_fetch/7f208248….min.js 二级 type-0x01

解出的 dylib:coruna-online/c2_fetch/<stem>_type0x01.dylib(lab 未复制)。

业务模块见 SYNC.md。