用途:在两个源码快照(git 提交、标签或目录)上分别构建 Trailmark 代码图并计算结构差异,发现文本级 diff 遗漏的安全相关结构变化,包括新攻击路径、复杂度变化、爆炸半径增长、污点传播变化和权限边界修改。
主要能力:原生 Trailmark 结构 diff 覆盖节点、边和入口点的增删改;graph_diff.py 辅助脚本检测子图成员变化(如 tainted、high_blast_radius、privilege_boundary)。报告按严重级别分类,从 CRITICAL 到 INFO。
使用方式:需先安装 trailmark,命令为 uv tool install trailmark。工作流分五阶段:用 git worktree 创建两个快照;对两个快照分别构建图并运行 engine.preanalysis();运行 trailmark diff --json --language auto BEFORE AFTER 和 uv run {baseDir}/scripts/graph_diff.py --before ... --after ...;解读 diff 并生成报告;清理 worktree。
限制:trailmark diff 的 --language 默认是 python,其他语言目标会退出 0 并输出空数组,必须显式传 --language。不适用于行级代码审查、单快照分析、单快照图表生成或变异测试分诊。若安装失败应报告错误,不要退化为手动比较。
适用场景:比较两个 git ref、审计提交范围、检测新攻击路径、发现爆炸半径或复杂度增长、识别重构中的污点传播变化、发布前结构比较。