Native tooling · Fuzzing · Compression

AFL++ / paq8px compression fuzzing

A reproducible environment for applying coverage-guided fuzzing to a complex, stateful compression codebase.

Project duration
About five months, intermittently
Period
April–September 2025
Role
Build integration, fuzzing setup and debugging

Project outline

Making a difficult native target fuzzable

paq8px is a sophisticated C++ compression program with a large collection of context models and native build dependencies. I adapted the project into an AFL++ target and packaged the required toolchain into a repeatable environment.

Instrumentation and builds

The setup brings the compressor, its model components, CMake configuration and AFL++ instrumentation together in one build path. Containerisation keeps compiler and dependency versions consistent between runs.

Useful fuzzing runs

I added a seed corpus and worked through stability issues so generated cases could exercise the target without avoidable harness failures. Debugging tools remain available in the environment for reducing and investigating interesting results.

Media will be added once there is a concise demonstration that communicates the work better than a terminal screenshot.

  • AFL++
  • C++
  • Docker
  • CMake
  • Fuzzing