re-crash-triage
Installation
SKILL.md
崩溃分析与漏洞定位(crash triage)
何时使用 / 何时不用
- 用:fuzz 产出崩溃输入;程序段错误/abort;需要判断崩溃是否真实漏洞(可达性)并产出最小 PoC;多线程/非确定性崩溃需复现
- 不用:还没崩溃、要主动找 bug(→ [[re-fuzzing]]);崩溃已定位、需要深挖函数逻辑(→ [[re-binary-core]] 底座)
- 不用:只需要看符号栈(直接 [[re-gdb]] 亦可,但本技能含完整"复现→最小化→定位→PoC"流程)
工具准备
所有工具先验证再使用。复现崩溃是动态执行,默认沙箱内跑([[re-analyze/platform-tips]] 最高原则,见 [[re-sandbox]])。
ASAN / UBSAN —— 内存与未定义行为检测(clang/gcc 内置)
- clang:
sudo apt install clang/sudo dnf install clang/sudo pacman -S clang/ macOS Xcode 自带 - gcc: Debian/Ubuntu
sudo apt install gcc(ASAN 内置在 gcc,无独立包);Fedorasudo dnf install gcc;Archsudo pacman -S gcc - 编译:
gcc -fsanitize=address,undefined -g -fno-omit-frame-pointer -o target_asan target.c(clang 参数相同) - 验证: 写一个数组越界小程序编译运行,确认输出含
AddressSanitizer字样