К основному содержанию
скилл CX Codex

harness-writing — скилл для Claude Code: фаззинг-обвязки на C/C++

Помогает написать и доработать фаззинг-обвязку: разложить сырые байты по аргументам API, убрать недетерминизм и ложные падения.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add trailofbits/skills --skill harness-writing -a claude-code
Открыть на GitHub

Что делает harness-writing

Скилл про обвязку (harness) — функцию-точку входа, которая принимает от фаззера случайные байты и передаёт их в тестируемый код. От неё зависит, какие ветки вообще будут пройдены и найдутся ли баги. Скилл разбирает, как выбрать цели, написать минимальный LLVMFuzzerTestOneInput или fuzz_target!, добавить проверку размера и превратить байты в типизированные значения.

Для структурированных входов есть два подхода: приведение типов через *(uint32_t*)(data) и FuzzedDataProvider с методами вроде ConsumeIntegral<uint32_t>() и ConsumeBytesWithTerminator<char>(32, 0xFF). В Rust — i32::from_ne_bytes. Отдельная тема — недетерминизм: если обвязка ведёт себя по-разному на одном и том же входе, падения не воспроизводятся, и это первое, что стоит проверить, когда кампания сыплет невоспроизводимыми крашами.

Скилл пригодится, когда кампания не находит багов или покрытие низкое, когда API требует структурированных данных, а не сырых байтов, и когда несколько связанных функций нужно фаззить вместе. Если в проекте уже есть проверенные обвязки или инструмент генерирует их сам, пользы мало.

Какие задачи решает

  • написать первую фаззинг-обвязку для C/C++ или Rust
  • разложить сырые байты по аргументам целевого API
  • добиться воспроизводимости падений, найденных фаззером
  • поднять покрытие кампании, которая ничего не находит
  • решить, какие функции фаззить в одной обвязке

Примеры запросов агенту

  • Напиши минимальную обвязку LLVMFuzzerTestOneInput для парсера заголовков
  • Переделай обвязку на FuzzedDataProvider, чтобы получать строки и числа
  • Кампания находит краши, которые не воспроизводятся — разбери обвязку на недетерминизм

Как установить harness-writing

1Через Skills CLI (Vercel)

npx skills add trailofbits/skills --skill harness-writing -a claude-code

2Вручную: положить файлы

~/.claude/skills/harness-writing/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/harness-writing/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о harness-writing

Как установить harness-writing в Claude Code?

Выполните npx skills add trailofbits/skills --skill harness-writing -a claude-code. Скилл появится по пути ~/.claude/skills/harness-writing/SKILL.md.

Что делает harness-writing?

Помогает проектировать и улучшать фаззинг-обвязки для C/C++ и Rust: выбор целей, разбор входных данных, работа с типизированными аргументами и недетерминизмом.

Когда этот скилл не нужен?

Если в проекте уже есть проверенные обвязки или инструмент генерирует их автоматически и результат устраивает.

Похожие скиллы

Все скиллы по теме «Тесты и QA» →
improve-codebase-architecture Matt Pocock Скилл ищет архитектурные узкие места в кодовой базе и показывает варианты углубления модулей в HTML-отчёте. Подойдёт для ревью перед рефакторингом. 1 163 035установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. CX Codex +1 678 700установок tdd Matt Pocock Скилл управляет циклом красный-зелёный в TDD: проверяет, что тесты пишутся до кода, держит их на уровне публичных интерфейсов и не завязывает на внутреннюю структуру. 1 141 062установок skill-creator официальный anthropics Помогает создать новый скилл, доработать существующий и проверить результат через тестовые промпты и оценки. 414 180установок agent-browser vercel-labs Скилл управляет браузером через CLI: открывает страницы, заполняет формы, нажимает кнопки и проверяет веб-приложения. Подходит для задач, где агенту нужно действовать в интерфейсе. CX Codex +1 1 200 000установок prototype Matt Pocock Создаёт временный прототип, чтобы проверить логику, модель состояния или вид интерфейса до работы над основным кодом. 986 201установок

Из того же набора77

solana-vulnerability-scanner Находит шесть критических уязвимостей в смарт-контрактах Solana на Rust и Anchor. Помогает выявить ошибки в валидации аккаунтов и вызовах CPI перед деплоем. CX Codex +1 5 600установок token-integration-analyzer Проверяет реализации ERC20 и ERC721, а также код интеграции внешних токенов. Пригодится перед подключением токенов с нестандартным поведением. CX Codex +1 5 500установок cargo-fuzz Разворачивает cargo-fuzz в Rust-крейте и проводит через обвязку, санитайзеры и разбор падений. CX Codex +1 5 400установок constant-time-analysis Статически проверяет ассемблер и байткод криптографического кода на утечки по времени. Находит деление на секретные данные и ранние выходы из сравнений. CX Codex +1 5 400установок firebase-apk-scanner Разбирает Android APK, вытаскивает конфиг Firebase и проверяет базы, хранилища и функции на открытый доступ. Нужен при аудите мобильных приложений. CX Codex +1 5 400установок guidelines-advisor Проверяет смарт-контракты по руководству Trail of Bits. Помогает найти архитектурные ошибки, уязвимости в прокси и слабые места в тестах. CX Codex +1 5 500установок coverage-analysis Измеряет покрытие кода при фаззинге и помогает понять, почему новые пути не находятся. Пригодится для проверки харнесса, корпуса и недостижимых веток. CX Codex +1 5 500установок fuzzing-dictionary Скилл помогает составлять словари токенов и байтов для фаззинга парсеров и протоколов. Пригодится, когда генератор слепых мутаций застревает на проверке заголовков или сигнатур. CX Codex +1 5 300установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой