Cargo Features

[dependencies]
libafl_qemu = { version = "0.14.0", default-features = false, features = ["document-features", "paranoid_debug", "injections", "python", "fork", "build_libgasan", "build_libqasan", "x86_64", "i386", "arm", "aarch64", "mips", "ppc", "hexagon", "riscv32", "riscv64", "be", "usermode", "systemmode", "serdeany_autoreg", "slirp", "shared", "clippy"] }
default = build_libgasan, build_libqasan, fork, injections, serdeany_autoreg, usermode

These default features are set whenever libafl_qemu is added without default-features = false somewhere in the dependency tree.

document-features

Enables document-features

Document all features of this crate (for cargo doc)

paranoid_debug

Will perform as many checks as possible. The target will be greatly slowed down.

Enables paranoid_debug of libafl_qemu_sys

injections default = serde_yaml, toml

# Feature Flags
### General Features
Find injections during fuzzing

Affects usermode::injections

python = pyo3, pyo3-build-config

Python bindings support

Enables python of libafl_qemu_sys

Affects libafl_qemu::python_module, qemu::pybind, usermode::pybind

fork default

Fork support

Enables fork of libafl

Affects executor::QemuForkExecutor

build_libgasan default

Build libqasan for address sanitization

build_libqasan default
x86_64

The following architecture features are mutually exclusive.

build qemu for x86_64 (default)

Enables x86_64 of libafl_qemu_sys

i386

build qemu for i386

Enables i386 of libafl_qemu_sys

arm

build qemu for arm

Enables arm of libafl_qemu_sys

aarch64

build qemu for aarch64

Enables aarch64 of libafl_qemu_sys

mips

build qemu for mips (el, use with the 'be' feature of mips be)

Enables mips of libafl_qemu_sys

ppc

build qemu for powerpc

Enables ppc of libafl_qemu_sys

hexagon

build qemu for hexagon

Enables hexagon of libafl_qemu_sys

riscv32

build qemu for riscv 32bit

Enables riscv32 of libafl_qemu_sys

riscv64

build qemu for riscv 64bit

Enables riscv64 of libafl_qemu_sys

Affects riscv::GuestReg

be

Big Endian mode

Enables be of libafl_qemu_sys

usermode default

Usermode (mutually exclusive to Systemmode)

Enables usermode of libafl_qemu_sys

Affects hooks::crash_hook_wrapper, cmplog::CmpLogRoutinesModule, modules::usermode, modules::StdPageFilter, config::Program, hooks::CrashHookFn, hooks::CrashHookClosure

systemmode slirp?

Systemmode (mutually exclusive to Usermode)

Enables systemmode of libafl_qemu_sys

Affects command::PageAllowCommand, modules::systemmode, modules::EmulatorModule.page_filter, modules::EmulatorModule.page_filter_mut, modules::EmulatorModule.update_page_filter, modules::EmulatorModuleTuple.allow_page_id_all, modules::StdPageFilter, config::Accelerator, config::Bios, config::Kernel

serdeany_autoreg default

SerdeAny features

Automatically register all #[derive(SerdeAny)] types at startup.

Enables serdeany_autoreg of libafl_bolts

slirp = systemmode

build qemu with host libslirp (for user networking)

Enables slirp of libafl_qemu_sys

shared

Requires the binary's build.rs to call build_libafl_qemu

Enables shared of libafl_qemu_sys

clippy

Internal features, don't use in normal projects

clippy workaround

Enables clippy of libafl_qemu_sys

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

serde_yaml injections

Enables serde_yaml

For parsing the injections yaml file

toml injections

Enables toml

For parsing the injections toml file

pyo3 python?

Enables pyo3 ^0.22.3

pyo3-build-config build python?

Enables pyo3-build-config ^0.22.3