Getting started
June 24, 2025 ยท View on GitHub
-
Clone the repository.
-
Set Up the Fuzzer: The environment variables used by the fuzzer are set in
.cargo/config.toml. Descriptions:- CUSTOM_QEMU_DIR: sets the path to the
qemu-libafl-bridgedirectory - CUSTOM_QEMU_NO_BUILD: can be set to
1to prevent qemu from rebuilding theqemu-libafl-bridge. For the first run, it is recommended to comment this out. - CUSTOM_QEMU_NO_CONFIGURE: can be set to
1to prevent qemu from reconfiguring. For the first run, it is recommended to comment this out. - KERNEL: path to the baseband firmware
- NUM_JOBS: number of jobs the fuzzer will run
The fuzzer dependencies and features are set in
Cargo.toml.Run the fuzzer with the following command:
cargo fuzzTo run the project without fuzzing and just starting the emulation, run:
cargo emu - CUSTOM_QEMU_DIR: sets the path to the
-
Killing the Fuzzer: We probably wouldn't need this later on
If you need to stop the fuzzer, press Ctrl-Z to suspend it, then run:
kill -9 %1 -
Using tmux: The script tmux_bootsrap.sh creates a tmux session with 3 windows - fuzzer, qemu monitor and lldb. The setup can directly be used for fuzzing or debugging the emulation.