You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The `libafl_bolts`create is a minimal tool shed filled with useful low-level rust features, not necessarily related to fuzzers.
36
+
The `libafl_bolts`crate is a minimal tool shed filled with useful low-level rust features, not necessarily related to fuzzers.
37
37
In it, you'll find highlights like:
38
38
39
39
-`core_affinity` to bind the current process to cores
@@ -46,20 +46,20 @@ In it, you'll find highlights like:
46
46
47
47
... and much more.
48
48
49
-
### libafl_sugar
49
+
### `libafl_sugar`
50
50
51
51
The sugar crate abstracts away most of the complexity of LibAFL's API.
52
52
Instead of high flexibility, it aims to be high-level and easy-to-use.
53
53
It is not as flexible as stitching your fuzzer together from each individual component, but allows you to build a fuzzer with minimal lines of code.
54
54
To see it in action, take a look at the [`libfuzzer_stb_image_sugar` example fuzzer](https://github.com/AFLplusplus/LibAFL/tree/main/fuzzers/libfuzzer_stb_image_sugar).
55
55
56
-
### libafl_derive
56
+
### `libafl_derive`
57
57
58
58
This a proc-macro crate paired with the `libafl` crate.
59
59
60
60
At the moment, it just exposes the `derive(SerdeAny)` macro that can be used to define Metadata structs, see the section about [Metadata](../design/metadata.md) for details.
61
61
62
-
### libafl_targets
62
+
### `libafl_targets`
63
63
64
64
This crate exposes code to interact with, and to instrument, targets.
65
65
To enable and disable features at compile-time, the features are enabled and disabled using feature flags.
@@ -71,32 +71,32 @@ Currently, the supported flags are:
71
71
-`libfuzzer` exposes a compatibility layer with libFuzzer style harnesses.
72
72
-`value_profile` defines the SanitizerCoverage trace-cmp hooks to track the matching bits of each comparison in a map.
73
73
74
-
### libafl_cc
74
+
### `libafl_cc`
75
75
76
76
This is a library that provides utils to wrap compilers and create source-level fuzzers.
77
77
78
78
At the moment, only the Clang compiler is supported.
79
79
To understand it deeper, look through the tutorials and examples.
80
80
81
-
### libafl_frida
81
+
### `libafl_frida`
82
82
83
83
This library bridges LibAFL with Frida as instrumentation backend.
84
84
With this crate, you can instrument targets on Linux/macOS/Windows/Android for coverage collection.
85
85
Additionally, it supports CmpLog, and AddressSanitizer instrumentation and runtimes for aarch64.
86
86
See further information, as well as usage instructions, [later in the book](../advanced_features/frida.md).
87
87
88
-
### libafl_qemu
88
+
### `libafl_qemu`
89
89
90
90
This library bridges LibAFL with QEMU user-mode to fuzz ELF cross-platform binaries.
91
91
92
92
It works on Linux and can collect edge coverage without collisions!
93
93
It also supports a wide range of hooks and instrumentation options.
94
94
95
-
### libafl_nyx
95
+
### `libafl_nyx`
96
96
97
97
[Nyx](https://nyx-fuzz.com/) is a KVM-based snapshot fuzzer. `libafl_nyx` adds these capabilities to LibAFL. There is a specific section explaining usage of libafl_nyx [later in the book](../advanced_features/nyx.md).
98
98
99
-
### libafl_concolic
99
+
### `libafl_concolic`
100
100
101
101
Concolic fuzzing is the combination of fuzzing and a symbolic execution engine.
102
102
This can reach greater depth than normal fuzzing, and is exposed in this crate.
0 commit comments