Skip to content
SkillsBundleby SANTACONCHA
ES EN

Individual AI skill · AI for Inteligencia e Investigación

libfuzzer

libFuzzer is an in-process, coverage-guided fuzzer that is part of the LLVM project. It's the recommended starting point for fuzzing C/C++ projects due to its simplicity and integration with the LLVM toolchain. While libFuzzer has been in…

Source content · review pending Source language: EN

Free ZIP · One canonical method · Usage example · Installation guide · Licence notices

From file to useful result

How to ask with this skill installed

Installing the skill gives your AI a method. Your request still has to provide the case-specific facts, constraints and expected output.

1Name the real task

Describe the decision or deliverable, not just the topic.

2Provide the evidence

Add source material, audience, limits and known facts.

3Define done

Set format, quality criteria and checks.

Adaptable starting prompt Replace the brackets with your case

When to use it

| Fuzzer | Best For | Complexity | |--------|----------|------------| | libFuzzer | Quick setup, single-project fuzzing | Low | | AFL++ | Multi-core fuzzing, diverse mutations | Medium | | LibAFL | Custom fuzzers, research projects | High | | Honggfuzz | Hardware-based coverage | Medium |

Choose libFuzzer when:

  • You need a simple, quick setup for C/C++ code
  • Project uses Clang for compilation
  • Single-core fuzzing is sufficient initially
  • Transitioning to AFL++ later is an option (harnesses are compatible)

Note: Fuzzing harnesses written for libFuzzer are compatible with AFL++, making it easy to transition if you need more advanced features like better multi-core support.

Mistakes to avoid

| Problem | Cause | Solution | |---------|-------|----------| | No crashes found after hours | Poor corpus, low coverage | Add seed inputs, use dictionary, check harness | | Very slow executions/sec (<100) | Target too complex, excessive logging | Optimize target, use -close_fd_mask=3, reduce logging | | Out of memory | ASan's 20TB virtual memory | Set -rss_limit_mb=0 to disable RSS limit | | Fuzzer stops after first crash | Default behavior | Use -fork=1 -ignore_crashes=1 to continue | | Can't reproduce crash | Non-determinism in harness/target | Remove random number generation, global state | | Linking errors with -fsanitize=fuzzer | Missing libFuzzer runtime | Ensure using Clang, check LLVM installation | | GCC project won't compile with Clang | GCC-specific code | Switch to AFL++ with gcc_plugin instead | | Coverage not improving | Corpus plateau | Run longer, add dictionary, improve seeds, check coverage report | | Crashes but ASan doesn't trigger | Memory error not detected without ASan | Recompile with -fsanitize=address |

Choose the right scope

Packs that include this skill

Download only this method or take it together with the rest of its professional area.

This page

Individual skill

The smallest useful download, prepared for a web project or an agent.

Choose format →
Professional pack

AI for Inteligencia e Investigación

This skill plus the other methods selected for this professional area.

Same method, different setup

Where will you use it?

We do not duplicate the skill for every platform. We keep one canonical method and explain the correct installation route.

Traceable by design

Source and licence travel with the file.

SkillsBundle catalogues material of its own and from third parties. Inclusion does not claim original authorship. The individual ZIP preserves the canonical catalogue path and includes the applicable licence notices.

Catalogue path
skills/transversal/knowledge/trailofbits-skills/plugins/testing-handbook-skills/skills/libfuzzer
Ficha origin
Extracted from SKILL.md
Read terms and licence policy →

Start with one real task

Install the method. Keep your judgement.

Choose format