mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-21 14:34:49 +01:00
doc: Update fuzzing docs for afl-clang-lto
This commit is contained in:
parent
ee0dc02c6f
commit
fab633d2db
1 changed files with 9 additions and 10 deletions
|
@ -108,33 +108,32 @@ Full configure that was tested on macOS Catalina with `brew` installed `llvm`:
|
||||||
|
|
||||||
Read the [libFuzzer documentation](https://llvm.org/docs/LibFuzzer.html) for more information. This [libFuzzer tutorial](https://github.com/google/fuzzing/blob/master/tutorial/libFuzzerTutorial.md) might also be of interest.
|
Read the [libFuzzer documentation](https://llvm.org/docs/LibFuzzer.html) for more information. This [libFuzzer tutorial](https://github.com/google/fuzzing/blob/master/tutorial/libFuzzerTutorial.md) might also be of interest.
|
||||||
|
|
||||||
# Fuzzing Bitcoin Core using american fuzzy lop (`afl-fuzz`)
|
# Fuzzing Bitcoin Core using afl++
|
||||||
|
|
||||||
## Quickstart guide
|
## Quickstart guide
|
||||||
|
|
||||||
To quickly get started fuzzing Bitcoin Core using [`afl-fuzz`](https://github.com/google/afl):
|
To quickly get started fuzzing Bitcoin Core using [afl++](https://github.com/AFLplusplus/AFLplusplus):
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ git clone https://github.com/bitcoin/bitcoin
|
$ git clone https://github.com/bitcoin/bitcoin
|
||||||
$ cd bitcoin/
|
$ cd bitcoin/
|
||||||
$ git clone https://github.com/google/afl
|
$ git clone https://github.com/AFLplusplus/AFLplusplus
|
||||||
$ make -C afl/
|
$ make -C AFLplusplus/ source-only
|
||||||
$ make -C afl/llvm_mode/
|
|
||||||
$ ./autogen.sh
|
$ ./autogen.sh
|
||||||
# It is possible to compile with afl-gcc and afl-g++ instead of afl-clang. However, running afl-fuzz
|
# If afl-clang-lto is not available, see
|
||||||
# may require more memory via the -m flag.
|
# https://github.com/AFLplusplus/AFLplusplus#a-selecting-the-best-afl-compiler-for-instrumenting-the-target
|
||||||
$ CC=$(pwd)/afl/afl-clang-fast CXX=$(pwd)/afl/afl-clang-fast++ ./configure --enable-fuzz
|
$ CC=$(pwd)/AFLplusplus/afl-clang-lto CXX=$(pwd)/AFLplusplus/afl-clang-lto++ ./configure --enable-fuzz
|
||||||
$ make
|
$ make
|
||||||
# For macOS you may need to ignore x86 compilation checks when running "make". If so,
|
# For macOS you may need to ignore x86 compilation checks when running "make". If so,
|
||||||
# try compiling using: AFL_NO_X86=1 make
|
# try compiling using: AFL_NO_X86=1 make
|
||||||
$ mkdir -p inputs/ outputs/
|
$ mkdir -p inputs/ outputs/
|
||||||
$ echo A > inputs/thin-air-input
|
$ echo A > inputs/thin-air-input
|
||||||
$ FUZZ=bech32 afl/afl-fuzz -i inputs/ -o outputs/ -- src/test/fuzz/fuzz
|
$ FUZZ=bech32 AFLplusplus/afl-fuzz -i inputs/ -o outputs/ -- src/test/fuzz/fuzz
|
||||||
# You may have to change a few kernel parameters to test optimally - afl-fuzz
|
# You may have to change a few kernel parameters to test optimally - afl-fuzz
|
||||||
# will print an error and suggestion if so.
|
# will print an error and suggestion if so.
|
||||||
```
|
```
|
||||||
|
|
||||||
Read the [`afl-fuzz` documentation](https://github.com/google/afl) for more information.
|
Read the [afl++ documentation](https://github.com/AFLplusplus/AFLplusplus) for more information.
|
||||||
|
|
||||||
# Fuzzing Bitcoin Core using Honggfuzz
|
# Fuzzing Bitcoin Core using Honggfuzz
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue