From 87a42c4dc364d5cf94187b1ff7488b74709372bf Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Mon, 12 Oct 2015 17:15:57 +0200 Subject: Add Makefile --- README.md | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 833d92873..9230a1c3a 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # syzkaller - linux syscall fuzzer -```syzkaller``` is a distributed, unsupervised, coverage-guided Linux syscall fuzzer. -It is meant to be used with [KASAN](https://www.kernel.org/doc/Documentation/kasan.txt) (```CONFIG_KASAN=y```), -[KTSAN](https://github.com/google/ktsan) (```CONFIG_KTSAN=y```), +`syzkaller` is a distributed, unsupervised, coverage-guided Linux syscall fuzzer. +It is meant to be used with [KASAN](https://www.kernel.org/doc/Documentation/kasan.txt) (`CONFIG_KASAN=y`), +[KTSAN](https://github.com/google/ktsan) (`CONFIG_KTSAN=y`), or [KUBSAN] (http://developerblog.redhat.com/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan/) ([patch](https://lkml.org/lkml/2014/10/20/181)). Project [mailing list](https://groups.google.com/forum/#!forum/syzkaller). @@ -15,23 +15,25 @@ This is work-in-progress, some things may not work yet. Coverage support is not upstreamed yet, so you need to apply [this patch](https://codereview.appspot.com/267910043) to gcc (tested on revision 227353) and [this patch](https://github.com/dvyukov/linux/commit/5626fbd654b9f0ce037376bd95bfe8e9530e1313) -to kernel. Then build kernel with ```CONFIG_KASAN``` or ```CONFIG_KTSAN``` and the new ```CONFIG_SANCOV```. +to kernel. Then build kernel with `CONFIG_KASAN` or `CONFIG_KTSAN` and the new `CONFIG_SANCOV`. -Then, build ```syzkaller/master```, ```syzkaller/manager```, ```syzkaller/fuzzer``` and ```syzkaller/executor```. -The latter is build using ```make``` in the dir, the rest are build using ```go build```. +Then, build syzkaller with `make`. +The compiled binaries will be put in the `bin` folder. -Then, write manager config based on ```manager/example.cfg```. +Then, write manager config based on `manager/example.cfg`. Then, start the master process as: - -```$ ./master -workdir=./workdir -addr=myhost.com:48342 -http=myhost.com:29855``` +``` +./master -workdir=./workdir -addr=myhost.com:48342 -http=myhost.com:29855 +``` and start the manager process as: - -```$ ./manager -config my.cfg``` +``` +./manager -config my.cfg +``` The manager process will wind up qemu virtual machines and start fuzzing in them. -If you open the HTTP address (in our case ```http://myhost.com:29855```), +If you open the HTTP address (in our case `http://myhost.com:29855`), you will see how corpus collection progresses. ## Process Structure @@ -68,6 +70,6 @@ close(fd fd) open_mode = S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH ``` -The description is contained in ```syzkaller/sys/sys.txt``` file. +The description is contained in `syzkaller/sys/sys.txt` file. This is not an official Google product. -- cgit mrf-deployment