ruzzy — скилл для Claude Code: фаззинг Ruby и C-расширений
Скилл ставит и запускает Ruzzy — фаззер для Ruby с покрытием на базе libFuzzer. Пригодится, когда нужно искать падения в геме или проверить нативное расширение на порчу памяти.
npx skills add trailofbits/skills --skill ruzzy -a claude-codeЧто делает ruzzy
Ruzzy — фаззер для Ruby с учётом покрытия, построенный на libFuzzer. Скилл объясняет, как его поставить, собрать харнесс и запустить кампанию против чистой Ruby-библиотеки или C-расширения внутри гема. Работает на Linux x86-64 и AArch64/ARM64; для macOS и Windows в репозитории есть Dockerfile и среда разработки.
Для чистой Ruby нужны два файла: трассировщик с Ruzzy.trace('test_harness.rb') и сам харнесс, где лямбда test_one_input возвращает 0 и вызывает Ruzzy.fuzz. C-расширения фаззят одним файлом, трассировщик не нужен — исключения Ruby внутри лямбды перехватываются, потому что цель — порча памяти, а не обычные ошибки. Харнесс должен быть детерминированным, без случайности и привязки ко времени.
Перед кампанией ставят ASAN_OPTIONS с allocator_may_return_null=1, detect_leaks=0 и use_sigaltstack=0, а LD_PRELOAD с путём к ASan подставляют прямо в строку запуска, не через export. Для сборки гемов с санитайзерами нужен clang и флаги вида -fsanitize=address,fuzzer-no-link. Если clang старый, свежие инструментальные возможности могут не собраться — проверьте версию до установки.
Какие задачи решает
- найти падение в чистой Ruby-библиотеке через фаззинг с покрытием
- проверить C-расширение гема на порчу памяти
- собрать гем с AddressSanitizer и флагами инструментации
- воспроизвести сохранённый краш-файл после кампании
- запустить libFuzzer с корпусом и своими лимитами
Примеры запросов агенту
- Настрой Ruzzy и напиши харнесс для фаззинга моей Ruby-библиотеки
- Собери C-расширение гема с санитайзерами и запусти фаззинг
- Помоги воспроизвести краш из файла
crash-253420c1158bc6382093d409ce2e9cff5806e980
Как установить ruzzy
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill ruzzy -a claude-code2Вручную: положить файлы
~/.claude/skills/ruzzy/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/ruzzy/
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill ruzzy -a codex2Вручную: положить файлы
.agents/skills/ruzzy/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill ruzzy -a cursor2Вручную: положить файлы
.cursor/skills/ruzzy/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install trailofbits/skills ruzzy2Вручную: положить файлы
.github/skills/ruzzy/SKILL.md1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill ruzzy -a gemini-cli2Командой платформы
gemini skills install https://github.com/trailofbits/skills --path plugins/testing-handbook-skills/skills/ruzzyВручную: положить файлы
.devin/skills/ruzzy/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill ruzzy -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о ruzzy
Как установить ruzzy в Claude Code?
Выполните npx skills add trailofbits/skills --skill ruzzy -a claude-code, скилл появится в ~/.claude/skills/ruzzy/SKILL.md.
Что делает ruzzy?
Ставит и запускает Ruzzy — фаззер Ruby с учётом покрытия на базе libFuzzer. Скилл показывает структуру харнесса для чистой Ruby и для C-расширений, а также сборку с санитайзерами.
Что нужно для работы Ruzzy?
Linux x86-64 или AArch64/ARM64, свежий clang и Ruby с gem. Для macOS и Windows в репозитории есть Dockerfile и среда разработки.