Expand description
jscd — 把 bytenode 编译的 .jsc(V8 code cache)静态逆向回 JS。
模块分层:
tablescodegen 生成的多版本配置(基线 + 每版本差异,JSON 内嵌)header28 字节 SerializedCodeData 头 + Brotli 嗅探vhashVersion::Hash() 还原(MurmurHash 变体)与爆破serializerpayload 反序列化(SFI 树/常量池/字节码)bytecode/disasm表驱动字节码解码与 View8 兼容输出out终端输出(断管不 panic)
Modules§
- args
- 命令行定义:两种入场形态(对齐 ddc 的用法)。
- bytecode
- 字节码解码:表驱动(opcode 表 + 操作数宽度/缩放 + 寄存器命名)。
- cli
- 子命令实现与统一输出(stdout=数据,stderr=诊断,退出码由 main 收口)。
- decompile
- 反编译器:字节码 → 伪 JS(语法合法,尽量可运行)。
- disasm
- 反汇编渲染:对齐 V8
--print-bytecode/ View8 反汇编器文本格式。 - header
.jsc头部:SerializedCodeData(布局随 V8 版本可配)+ Brotli 嗅探。- help
- 双语 help / version 文本(手写,不用 clap 生成的英文骨架)。
- lang
- 命令行信息的双语支持(对齐 ddc 的做法,另加 OS 级回退)。
- opt
- 产物文本的保守优化:把字节码的“寄存器搬运“还原成人读的样子。
- opt_js
- AST 级优化:用 cure 的 TS/JS 后端做语义保持的 简化与格式化(替代原来的 swc 压缩器)。
- out
- 终端输出的小工具:断管(EPIPE)不算错误,也不能崩。
- ro_
embed - serializer
- payload 反序列化器:把 V8 通用快照流解析为对象树(格式详见 docs/stream-format.md)。
- tables
- codegen 生成的多版本配置:基线 + 每版本差异,JSON 编译期内嵌(对齐 dae 的 profiles 模式)。
- vhash
Version::Hash()还原与爆破。