readme
This commit is contained in:
parent
fd83c10c1e
commit
0f40ac05d4
@ -10,7 +10,7 @@ It is released as Free and Open Source Software under the GNU Lesser General Pub
|
|||||||
|
|
||||||
## Example usages
|
## Example usages
|
||||||
|
|
||||||
We collect example fuzzers in `./fuzzers`. They can be build using `cargo build --example [fuzzer_name]`
|
We collect example fuzzers in `./fuzzers`. They can be build using `cargo build --example [fuzzer_name] --release`
|
||||||
The best-tested fuzzer is `./fuzzers/libfuzzer_libpng`, a clone of libfuzzer using libafl for a libpng harness.
|
The best-tested fuzzer is `./fuzzers/libfuzzer_libpng`, a clone of libfuzzer using libafl for a libpng harness.
|
||||||
See its readme [here](./fuzzers/libfuzzer_libpng/README.md).
|
See its readme [here](./fuzzers/libfuzzer_libpng/README.md).
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ It has been tested on Linux.
|
|||||||
|
|
||||||
To build this example, run `cargo build --example libfuzzer_libpng --release`.
|
To build this example, run `cargo build --example libfuzzer_libpng --release`.
|
||||||
This will call (the build.rs)[./builld.rs], which in turn downloads a libpng archive from the web.
|
This will call (the build.rs)[./builld.rs], which in turn downloads a libpng archive from the web.
|
||||||
Then, it will link (the fuzzer)[./src/fuzzer.rs] against (the c++ harness)[./harness.cc] and the instrumented `libpng`.
|
Then, it will link (the fuzzer)[./src/fuzzer.rs] against (the C++ harness)[./harness.cc] and the instrumented `libpng`.
|
||||||
Afterwards, the fuzzer will be ready to run, from `../../target/examples/libfuzzer_libpng`.
|
Afterwards, the fuzzer will be ready to run, from `../../target/examples/libfuzzer_libpng`.
|
||||||
|
|
||||||
## Run
|
## Run
|
||||||
@ -20,6 +20,6 @@ As this example uses in-process fuzzing, we added a Restarting Event Manager (`s
|
|||||||
This means each client will start itself again to listen for crashes and timeouts.
|
This means each client will start itself again to listen for crashes and timeouts.
|
||||||
By restarting the actual fuzzer, it can recover from these exit conditions.
|
By restarting the actual fuzzer, it can recover from these exit conditions.
|
||||||
|
|
||||||
In any real-world scenario, you should use `taskset` to pin each client to an empty cpu core, the lib does not pick an empty core automatically (yet).
|
In any real-world scenario, you should use `taskset` to pin each client to an empty CPU core, the lib does not pick an empty core automatically (yet).
|
||||||
|
|
||||||
For convenience, you may just run `./test.sh` in this folder to test it.
|
For convenience, you may just run `./test.sh` in this folder to test it.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user