cybermallard/typst-pivot
GitHub: cybermallard/typst-pivot
一个基于 CeTZ 的 Typst 扩展包,用于在网络威胁情报报告中绘制协议头、内存映射和十六进制转储等 CTI 图表。
Stars: 1 | Forks: 0
# pivot
用于 [Typst](https://typst.app) 的网络威胁情报(CTI)图表。其默认设置采用对色盲友好的颜色,从而生成干净且易读的图表。
![]() packet · protocol header |
![]() struct · memory map |
![]() hexdump · annotated bytes |
|
一个 TCP 头(狭窄的标志位作为引线标注展开),一个作为内存映射的恶意软件 C2 config,以及在十六进制转储中标注的 Gh0st RAT 签入。
## 安装说明 pivot 是一个 Typst 包 —— 从 preview 命名空间导入它,编译器 会在首次构建时获取它(以及 CeTZ)。无需手动安装步骤: ``` #import "@preview/pivot:0.1.0": packet, struct, hexdump ``` ## 使用 pivot ``` #import "@preview/pivot:0.1.0": packet, bytes #packet( bytes(2)[Source Port], bytes(2)[Destination Port], bytes(4)[Sequence Number], bytes(4)[Acknowledgment Number], ) ``` 字段由 `bytes(n)` / `bits(n)` 构建;pivot 会推导位置和 标尺。 ## 图表 **可用图表** | | | |---|---| | **`packet`** | 扁平的协议头视图 —— 字段在位标尺下换行成排;狭窄的标签变为引线标注。 | | **`struct`** | 垂直内存映射 —— 方块高度反映字节大小,侧面带有十六进制偏移量,子字节字段就地展开。 | | **`hexdump`** | 带有 ASCII 侧栏的真实字节,字段就地高亮显示并在颜色图例中对应。 | 这三个图表在同一个模型上共享一套字段词汇(`bytes` / `bits` / `gap` / `reserved`),因此同一字节的视图之间不会产生冲突。 **图表路线图** _按字母顺序排列,即并非它们的发布顺序。_ | | | |---|---| | ATT&CK 矩阵 | 作为网格展示的技术覆盖范围。 | | 攻击树 | 一种分层表示,展示对手为实现目标可能采取的路径。 | | 蝴蝶结 | 中心为事件,左侧为威胁,右侧为后果,并标注有预防和缓解屏障。 | | 钻石模型 | 四个顶点:对手、能力、基础设施、受害者。 | | 流程图 | 流程及其决策点的逐步视图。| | 知识图谱 | 作为节点的类型化实体通过带标签的边连接。 | | 痛苦金字塔 | 根据对手成本排名的指标类型。 | | 时序图 | 各方之间交互的时间顺序视图。 | | 时间线 | 有序轴上的事件 —— 水平、垂直或蛇形排列。 | ## 文档 完整文档正在编写中。目前,[`examples/`](examples) 为每种图表提供了可运行的示例。 ### 为图表添加标题 标题来自 Typst 自身的 `figure` 函数。默认的标题间距有点紧凑, 稍微加宽一点 `#set figure(gap: 1em)` 阅读体验会更好: ``` #set figure(gap: 1em) // a little more room than the 0.65em default #figure( packet( bytes(2)[Source Port], bytes(2)[Destination Port], bytes(4)[Sequence Number], ), caption: [TCP header (excerpt)], ) ``` ## 基于 CeTZ 构建 pivot 使用 CeTZ 进行渲染,其许可协议为 **LGPL-3.0-or-later**。CeTZ 既未被直接打包在内,也未被修改;Typst 编译器会在构建时独立获取它。 ## 许可证 [Apache-2.0](LICENSE)。有关归属说明,请参阅 [NOTICE](NOTICE)。标签:Mutation, Typst, 可视化, 威胁情报, 开发者工具, 排版工具


