Up to higher level directory | |||
Name | Date | Size | |
---|---|---|---|
client.c | 21-Aug-2018 | 45.1K | |
corpus_client/ | 21-Aug-2018 | ||
corpus_privkey/ | 21-Aug-2018 | ||
corpus_server/ | 21-Aug-2018 | ||
corpus_x509/ | 21-Aug-2018 | ||
hf_ssl_lib.h | 21-Aug-2018 | 1.5K | |
make.sh | 21-Aug-2018 | 1.6K | |
privkey.c | 21-Aug-2018 | 459 | |
README.md | 21-Aug-2018 | 1.4K | |
server.c | 21-Aug-2018 | 46.1K | |
x509.c | 21-Aug-2018 | 829 |
1 # Fuzzing OpenSSL # 2 3 **Requirements** 4 5 * honggfuzz 6 * clang-4.0, or newer (5.0/6.0 work as well) 7 * openssl 1.1.0 (or, the master branch from git) 8 * libressl/boringssl/openssl-1.0.2 work as well, though they might require specific building instructions 9 10 **Preparation (for OpenSSL 1.1.0/master)** 11 12 1. Compile honggfuzz 13 2. Unpack/Clone OpenSSL 14 15 ```shell 16 $ git clone --depth=1 https://github.com/openssl/openssl.git 17 $ mv openssl openssl-master 18 ``` 19 20 3. Use ```compile_hfuzz_openssl_master.sh``` to configure OpenSSL 21 22 ```shell 23 $ cd openssl-master 24 $ /home/jagger/src/honggfuzz/examples/openssl/compile_hfuzz_openssl_master.sh [enable-asan|enable-msan|enable-ubsan] 25 ``` 26 27 4. Compile OpenSSL 28 29 ```shell 30 $ make 31 ``` 32 33 5. Prepare fuzzing binaries 34 35 The _make.sh_ script will compile honggfuzz and libFuzzer binaries. Syntax: 36 37 ```shell 38 make.sh <directory-with-open/libre/boring-ssl> [address|memory|undefined] 39 ``` 40 41 ```shell 42 $ cd .. 43 $ /home/jagger/src/honggfuzz/examples/openssl/make.sh openssl-master address 44 ``` 45 46 **Fuzzing** 47 48 ```shell 49 $ /home/jagger/src/honggfuzz/honggfuzz -f corpus_server/ -P -- ./openssl-master.address.server 50 $ /home/jagger/src/honggfuzz/honggfuzz -f corpus_client/ -P -- ./openssl-master.address.client 51 $ /home/jagger/src/honggfuzz/honggfuzz -f corpus_x509/ -P -- ./openssl-master.address.x509 52 $ /home/jagger/src/honggfuzz/honggfuzz -f corpus_privkey/ -P -- ./openssl-master.address.privkey 53 ``` 54