SuperAPI AI 工具集

re-crash-triage

数据与分析

查看项目

更新于 10-15 21:34

技能介绍

用途:对崩溃样本做分诊(crash triage),判断崩溃是否为真实可达漏洞,并产出最小 PoC。适用于 fuzz 产出崩溃输入、程序段错误/abort、多线程非确定性崩溃复现;不用于主动找 bug(走 re-fuzzing)或崩溃已定位后的函数逻辑深挖。

主要能力与流程:

  1. 确定性复现:先 sha256sum 存证,按 stdin/文件/参数形态连续跑 3 次,判断确定性或非确定性。
  2. ASAN/UBSAN 解读:目标需以 gcc -fsanitize=address,undefined -g -fno-omit-frame-pointer 构建,识别 heap-buffer-overflow、heap-use-after-free、double-free、SEGV 等类别,关注 #0 帧与数据流向。
  3. 输入最小化:afl-tmin -i crash_input -o crash.min -- ./target @@;多输入去重用 afl-cmin。@@ 仅适用于文件参数目标,stdin 目标需改写命令行。afl-cmin 通常要求 AFL 插桩构建,否则改用 afl-tmin。
  4. gdb 回溯:gdb -q ./target,set disable-randomization on,run、bt、info registers、x/16i $pc;core 分析用 gdb ./target /path/to/core。
  5. rr 录制重放:rr record ./target crash_input,rr replay,continue、bt、reverse-continue。rr 仅支持 Linux,需内核 3.11+、PMU 可用,可先 rr check 自检;PMU 不可用时回退到多次重跑、helgrind 或 -fsanitize=thread。
  6. PoC 与报告:crash.min + sha256 + 复现命令,报告含崩溃类型、崩溃点、数据流向、根因、可达性与影响评估。

限制与常见坑:崩溃不等于漏洞,需确认路径可达、输入可控;ASAN 与 release 优化行为可能不同;core 可能被 systemd-coredump 或 apport 接管,可用 coredumpctl 取回;符号缺失时记录模块基址与偏移,在反编译工具中补帧。复现属动态执行,默认在沙箱内进行。