An autonomous, coverage-guided white-box fuzzer built from scratch in C, Go, and pure x86_64 Assembly.
Radon is a high-performance vulnerability discovery engine. It injects lightweight coverage-tracking payloads into target binaries during compilation and uses a highly optimized Genetic Algorithm via a Go-based Orchestrator to navigate through the target's execution paths, finding crashes at breakneck speeds.
Unlike standard wrappers, Radon implements its own instrumentation, IPC bridging, and mutation engines from the ground up.
- Custom Compiler Wrapper (
radon-cc): Intercepts GCC to inject AFL-style XOR coverage trampolines directly into the target's assembly graph. - Pure Assembly Tracer (
radon-trace.S): A nanosecond-level instrumentation engine that tracks execution edges in a 64KB Shared Memory map without disrupting CPU flags. - High-Speed Fork Server: Clones the target process at the OS level to avoid
execve()overhead, achieving massive Execs/Sec. - Autonomous Feedback Loop: The Go Orchestrator acts as the "brain," analyzing the coverage map to learn new paths and automatically saving interesting mutations back into the execution queue.
- Matrix-Style TUI: Real-time terminal dashboard tracking crashes, queue size, path discoveries, and execution speed.
- Auto-Seed Generation: No inputs provided? No problem. Radon dynamically generates its own starting payload if the
inputdirectory is empty.
- The Factory (
radon-cc): Injects the Radon Runtime (radon-rt) and Assembly Tracer into the target's source code. - The Matrix (
Shared Memory): A 64KB bitmap connecting the Fuzzer and the Target for real-time edge coverage feedback. - The Brain (
Orchestrator): Written in Go. Mutates the payloads, evaluates coverage, stores crashes, and renders the UI.
Clone the repository and compile the Radon toolkit. The build script automatically compiles the C components, the ASM tracer, and the Go orchestrator.
git clone [https://github.com/MrEx-Right/Radon.git](https://github.com/MrEx-Right/Radon.git)
cd Radon
./build.shUse radon-cc instead of gcc to compile your vulnerable C program. This will embed Radon's tracking agents into the binary:
./radon-cc test-targets/example.c -o example.outStart the fuzzing loop. Radon will automatically generate the required workspace and start hunting for crashes.
./radon --target ./example.out(Optional): Place your custom seed files in the input/ directory before running Radon to give it a head start.
When Radon successfully breaks the target, the crashing payloads (causing SIGSEGV or SIGABRT) will be automatically saved in:
./fuzzer_workspace/crashes/