Updated Fuzzing your nim code to rabbit out all the hard bugs (markdown)

This commit is contained in:
Federico Ceratto 2017-01-20 20:29:59 +00:00
parent dcd1e6d8f6
commit 6f7a03894a
1 changed files with 15 additions and 2 deletions

View File

@ -48,7 +48,9 @@ This is a pretty contrived thing, but just imagine this being somewhere in a fil
Save that example in a file called "afl.nim". Because afl needs to instrument the generated binary code, you need to tell nim to use the compiler frontend afl comes with, instead of whatever your distro defaults to. Create a file called "afl.nim.cfg" in the same directory and put this in:
```
```ini
# nim.cfg for afl-clang
-d:noSignalHandler
cc = clang
clang.exe = "afl-clang"
clang.linkerexe = "afl-clang"
@ -59,6 +61,16 @@ This is a working example for OSX, where afl was installed via homebrew. To make
Very important: `-d:noSignalHandler`, because AFL installs it's own signal handler inside instrumented code.
```ini
# nim.cfg for afl-gcc
-d:noSignalHandler
cc = gcc
gcc.exe = "afl-gcc"
gcc.linkerexe = "afl-gcc"
```
This is a working example for Linux. AFL was installed globally with 'apt-get install afl'
```
$ nim c -d:noSignalHandler afl
```
@ -113,4 +125,5 @@ trace = 0x10f913050"Traceback (most recent call last)\10"
You can limit the exceptions that are considered crashes by adjusting the except: clause in the example.
Then I'd strongly suggest to start reading up on afl if you want to employ it with confidence.
Then I'd strongly suggest to start reading up on afl if you want to employ it with confidence.