selective-instrument

Instrument specific functions in a binary for directed AFL++ fuzzing.

113|23|Updated Mar 23, 2026
One-click install
npx skills add https://github.com/opensage-agent/opensage-adk --skill selective-instrument
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: selective-instrument
Source: https://github.com/opensage-agent/opensage-adk/tree/main/src/opensage/bash_tools/fuzz/selective-instrument
Command: npx skills add https://github.com/opensage-agent/opensage-adk --skill selective-instrument

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

This skill solves the inefficiency of full-program fuzzing by focusing computational resources exclusively on specific functions or source files, allowing for rapid discovery of inputs that trigger target code regions.

Core Features & Use Cases

  • Selective Instrumentation: Uses AFL_LLVM_ALLOWLIST to limit coverage feedback to defined target regions, accelerating convergence.
  • Seed Collection: Automatically generates characteristic seeds that reach specific code paths for use in deeper analysis.
  • Use Case: When investigating a specific security patch or a suspected vulnerability in a large codebase, use this skill to isolate the target function and generate a PoC input without wasting cycles on irrelevant code paths.

Quick Start

Run the selective instrument tool to recompile the project with the current allowlist and begin a directed fuzzing campaign for 3600 seconds.

Frequently Asked Questions about selective-instrument

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run directed fuzzing on a specific function in a large codebase?

Directed fuzzing on a specific function requires selectively instrumenting target source files using AFL_LLVM_ALLOWLIST. This restricts coverage feedback to defined regions, accelerating path convergence and PoC input generation for vulnerability research.

What is selective instrumentation and when should I use it for vulnerability analysis?

Selective instrumentation limits fuzzing coverage feedback to specific code regions rather than the entire program. Use it when investigating a security patch or suspected vulnerability to isolate the target function and avoid wasting cycles on irrelevant paths.

Can I use AFL++ to generate seeds for specific code paths automatically?

Yes, AFL++ can automatically generate characteristic seeds that reach specific code paths during directed fuzzing campaigns. These seeds are collected for use in deeper security analysis and vulnerability research.

How do I configure AFL_LLVM_ALLOWLIST to target specific source files for fuzzing?

Configuring AFL_LLVM_ALLOWLIST involves defining target functions or source files to limit coverage feedback during recompilation. The selective instrument tool applies this allowlist to recompile the project and execute focused fuzzing campaigns.

What are the limitations of selective instrumentation for path exploration?

Selective instrumentation limits path exploration exclusively to allowlisted target regions, ignoring unrelated code paths. This approach is unsuitable for general vulnerability discovery but highly effective for analyzing specific security patches.

Do I need an AFL++ toolchain integration to perform directed fuzzing on target binaries?

Yes, AFL++ toolchain integration is required to manage allowlists and execute instrumented fuzzing campaigns. The toolchain handles recompiling the target binary and managing the directed fuzzing process for security analysis.