Toolverse
All skills

fuzzing-obstacles

by trailofbits

Techniques for patching code to overcome fuzzing obstacles. Use when checksums, global state, or other barriers block fuzzer progress.

Installation

Pick a client and clone the repository into its skills directory.

Installation

Quick info

Category
Testing
Views
3

About this skill

Techniques for patching code to overcome fuzzing obstacles. Use when checksums, global state, or other barriers block fuzzer progress.

How to use

  1. Zidentyfikuj przeszkody fuzzing'u w swoim kodzie – szukaj checksum'ów, haszów kryptograficznych, globalnych stanów (np. czasu systemowego, zmiennych środowiskowych) lub złożonych walidacji, które blokują fuzzer'owi dostęp do głębszych ścieżek kodu.

  2. Przygotuj warunkową kompilację w swoim systemie testowanym (SUT). Dodaj flagi kompilacji, które pozwolą na zmianę zachowania kodu podczas budowy fuzzing'owej – na przykład pomiń weryfikację checksum'ów lub zastąp niedeterministyczne generatory liczb losowych stałymi wartościami.

  3. Zastosuj techniki z tej umiejętności do patche'owania kodu – obejdź checksummy poprzez ich wyłączenie w trybie fuzzing'u, wyeliminuj zależności od globalnego stanu (czasu, zmiennych środowiskowych), a upraszczaj walidacje, aby fuzzer mógł generować prawidłowe dane wejściowe bez powtarzających się błędów walidacji.

  4. Zbuduj wersję fuzzing'ową projektu z włączonymi flagami warunkowej kompilacji. Upewnij się, że kod produkcyjny pozostaje niezmieniony – patche'owanie dotyczy tylko specjalnej konfiguracji budowania.

  5. Uruchom fuzzer'a na zmodyfikowanej wersji i obserwuj, czy osiąga głębsze ścieżki kodu i odkrywa więcej potencjalnych błędów. Porównaj wyniki z fuzzing'iem bez patche'owania, aby potwierdzić poprawę pokrycia kodu.

  6. Zweryfikuj, że wszystkie znalezione błędy mogą rzeczywiście wystąpić w kodzie produkcyjnym – odfiltruj fałszywe alarmy, które wynikają wyłącznie z patche'owania fuzzing'owego.

Related skills

testing-workflow

by amo-tech-ai

Comprehensive testing workflow for E2E, integration, and unit tests. Use when testing applications layer-by-layer, validating user journeys, or running test suites.

Testing
1076

backtesting-frameworks

by wshobson

Build robust backtesting systems for trading strategies with proper handling of look-ahead bias, survivorship bias, and transaction costs. Use when developing trading algorithms, validating strategies, or building backtesting infrastructure.

Testing
12105

ppt-creator

by daymade

Create professional slide decks from topics or documents. Generates structured content with data-driven charts, speaker notes, and complete PPTX files. Applies persuasive storytelling principles (Pyramid Principle, assertion-evidence). Supports multiple formats (Marp,

Testing
2739

nextjs-developer

by zenobi-us

Expert Next.js developer mastering Next.js 14+ with App Router and full-stack features. Specializes in server components, server actions, performance optimization, and production deployment with focus on building fast, SEO-friendly applications.

Testing
166226

vitest

by antfu

Vitest fast unit testing framework powered by Vite with Jest-compatible API. Use when writing tests, mocking, configuring coverage, or working with test filtering and fixtures.

Testing
1236

pair-trade-screener

by tradermonty

Statistical arbitrage tool for identifying and analyzing pair trading opportunities. Detects cointegrated stock pairs within sectors, analyzes spread behavior, calculates z-scores, and provides entry/exit recommendations for market-neutral strategies. Use when user requests pair

Testing
994