fuzzing-obstacles — скилл для Claude Code: что делает и как установить
Помогает обойти блокирующие проверки вроде хешей и системного времени при фаззинге C/C++ и Rust кода. Пригодится, когда фаззер застревает на ранней валидации.
npx skills add trailofbits/skills --skill fuzzing-obstacles -a claude-codeЧто делает fuzzing-obstacles
Скилл учит агента модифицировать тестируемый код так, чтобы фаззер проникал глубже валидаторов. Часто генерацию ломают сверка контрольных сумм или вызовы rand() и time(). Инструкция показывает, как изолировать такие препятствия через флаги сборки #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION для Си или cfg!(fuzzing) для Rust. Боевой код остаётся нетронутым.
Процесс разбит на четыре шага: поиск барьера по отчётам покрытия, добавление условной компиляции, повторный прогон фаззера и оценка ложных срабатываний. Прямолинейное удаление проверки опасно. Если последующий код опирается на отсечённые свойства объекта, фаззер упадёт на делении на ноль или битом указателе. Это повод проверять логику после каждого патча.
Какие задачи решает
- Обойти проверку контрольных сумм в фаззинг-сборках
- Зафиксировать сид генератора случайных чисел для детерминизма
- Открыть недостижимые ветки кода в отчётах покрытия
- Предотвратить ложные падения при отключении строгой валидации
Примеры запросов агенту
- Помоги пропатчить проверку контрольной суммы в parser.c под флаг FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
- Фаззер застрял на вызове rand() в initialize(), сделай сид детерминированным для cargo-fuzz
- Как безопасно обойти валидацию заголовка пакета, чтобы фаззер исследовал логику глубже?
Как установить fuzzing-obstacles
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill fuzzing-obstacles -a claude-code2Вручную: положить файлы
~/.claude/skills/fuzzing-obstacles/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/fuzzing-obstacles/
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill fuzzing-obstacles -a codex2Вручную: положить файлы
.agents/skills/fuzzing-obstacles/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill fuzzing-obstacles -a cursor2Вручную: положить файлы
.cursor/skills/fuzzing-obstacles/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install trailofbits/skills fuzzing-obstacles2Вручную: положить файлы
.github/skills/fuzzing-obstacles/SKILL.md1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill fuzzing-obstacles -a gemini-cli2Командой платформы
gemini skills install https://github.com/trailofbits/skills --path plugins/testing-handbook-skills/skills/fuzzing-obstaclesВручную: положить файлы
.devin/skills/fuzzing-obstacles/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill fuzzing-obstacles -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора35
Весь набор →Похожие
Вопросы о fuzzing-obstacles
Как установить fuzzing-obstacles в Claude Code?
Запустите команду npx skills add trailofbits/skills --skill fuzzing-obstacles -a claude-code. Файлы скилла запишутся в директорию ~/.claude/skills/fuzzing-obstacles/SKILL.md.
Для каких языков и фаззеров подходит скилл?
В руководстве описаны примеры для C, C++ и Rust. Шаблоны ориентированы на работу с libFuzzer, AFL++, LibAFL, honggfuzz и cargo-fuzz.
Чем опасен пропуск проверок валидации при фаззинге?
Последующий код может рассчитывать на корректность отфильтрованных структур. Если просто убрать проверку, фаззер начнёт находить ложные падения вроде деления на ноль, которые физически невозможны в релизе.