From 4b77ea9975ed3784090facc4707c860bf1d6a791 Mon Sep 17 00:00:00 2001 From: Andrea Fioraldi Date: Sat, 27 Mar 2021 00:36:13 +0100 Subject: [PATCH] book intro --- docs/README.md | 4 ++-- docs/book.toml | 4 ++-- docs/src/SUMMARY.md | 14 +++++++++++++- docs/src/baby_fuzzer.md | 1 + docs/src/chapter_1.md | 1 - docs/src/core_concepts/core_concepts.md | 1 + docs/src/core_concepts/executor.md | 1 + docs/src/core_concepts/observer.md | 1 + docs/src/getting_started/crates.md | 1 + docs/src/getting_started/getting_started.md | 1 + docs/src/getting_started/installation.md | 1 + docs/src/introduction.md | 14 ++++++++++++++ docs/src/libafl.md | 9 +++++++++ 13 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 docs/src/baby_fuzzer.md delete mode 100644 docs/src/chapter_1.md create mode 100644 docs/src/core_concepts/core_concepts.md create mode 100644 docs/src/core_concepts/executor.md create mode 100644 docs/src/core_concepts/observer.md create mode 100644 docs/src/getting_started/crates.md create mode 100644 docs/src/getting_started/getting_started.md create mode 100644 docs/src/getting_started/installation.md create mode 100644 docs/src/introduction.md create mode 100644 docs/src/libafl.md diff --git a/docs/README.md b/docs/README.md index 8e379b7b28..57f0f059b8 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,6 @@ -# LibAFL Documentation +# LibAFL Documentation Book -This project contains the out-of-source LibAFL documentation. +This project contains the out-of-source LibAFL documentation as a book. Here you can find tutorials, examples and detailed explanations. diff --git a/docs/book.toml b/docs/book.toml index 68f4a19788..8901056073 100644 --- a/docs/book.toml +++ b/docs/book.toml @@ -1,6 +1,6 @@ [book] -authors = ["Andrea Fioraldi"] +authors = ["Andrea Fioraldi", "Dominik Maier"] language = "en" multilingual = false src = "src" -title = "LibAFL Documentation" +title = "The LibAFL Fuzzing Library" diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md index 7390c82896..2aed5e4096 100644 --- a/docs/src/SUMMARY.md +++ b/docs/src/SUMMARY.md @@ -1,3 +1,15 @@ # Summary -- [Chapter 1](./chapter_1.md) +[The LibAFL Fuzzing Library](./libafl.md) + +[Introduction](./introduction.md) + +- [Getting Started](./getting_started/getting_started.md) + - [Installation](./getting_started/installation.md) + - [Crates](./getting_started/crates.md) + +- [Baby Fuzzer](./baby_fuzzer.md) + +- [Core Concepts](./core_concepts/core_concepts.md) + - [Executor](./core_concepts/executor.md) + - [Observer](./core_concepts/observer.md) diff --git a/docs/src/baby_fuzzer.md b/docs/src/baby_fuzzer.md new file mode 100644 index 0000000000..4f1e4ff234 --- /dev/null +++ b/docs/src/baby_fuzzer.md @@ -0,0 +1 @@ +# Baby Fuzzer diff --git a/docs/src/chapter_1.md b/docs/src/chapter_1.md deleted file mode 100644 index b743fda354..0000000000 --- a/docs/src/chapter_1.md +++ /dev/null @@ -1 +0,0 @@ -# Chapter 1 diff --git a/docs/src/core_concepts/core_concepts.md b/docs/src/core_concepts/core_concepts.md new file mode 100644 index 0000000000..c587b44432 --- /dev/null +++ b/docs/src/core_concepts/core_concepts.md @@ -0,0 +1 @@ +# Core Concepts diff --git a/docs/src/core_concepts/executor.md b/docs/src/core_concepts/executor.md new file mode 100644 index 0000000000..3fddc32644 --- /dev/null +++ b/docs/src/core_concepts/executor.md @@ -0,0 +1 @@ +# Executor diff --git a/docs/src/core_concepts/observer.md b/docs/src/core_concepts/observer.md new file mode 100644 index 0000000000..94e0f8b987 --- /dev/null +++ b/docs/src/core_concepts/observer.md @@ -0,0 +1 @@ +# Observer diff --git a/docs/src/getting_started/crates.md b/docs/src/getting_started/crates.md new file mode 100644 index 0000000000..5008dca83a --- /dev/null +++ b/docs/src/getting_started/crates.md @@ -0,0 +1 @@ +# Crates diff --git a/docs/src/getting_started/getting_started.md b/docs/src/getting_started/getting_started.md new file mode 100644 index 0000000000..bad55622f9 --- /dev/null +++ b/docs/src/getting_started/getting_started.md @@ -0,0 +1 @@ +# Getting Started diff --git a/docs/src/getting_started/installation.md b/docs/src/getting_started/installation.md new file mode 100644 index 0000000000..25267fe2b7 --- /dev/null +++ b/docs/src/getting_started/installation.md @@ -0,0 +1 @@ +# Installation diff --git a/docs/src/introduction.md b/docs/src/introduction.md new file mode 100644 index 0000000000..94fb00b27e --- /dev/null +++ b/docs/src/introduction.md @@ -0,0 +1,14 @@ +# Introduction + +Fuzzers are important assets in the pockets of security researchers and even developers nowadays. +A wide range of cool state-of-the-art tools like [AFL++](https://github.com/AFLplusplus/AFLplusplus), [libFuzzer](https://llvm.org/docs/LibFuzzer.html) or [honggfuzz](https://github.com/google/honggfuzz) are avaiable to users and they do their job in a very effective way. + +From the power user perspective, however, these tools are limited because not designed with the extensibility as first-class citizen. +Usually, a fuzzer developer has to choose if fork one of these existing tools with the result of having a tons of fuzzers derived from others which are in any case incompatible with each other, or creating a new fuzzer from scratch, reinventing the wheel and usually giving up on features that are complex to reimplement. + +Here comes LibAFL, a library that IS NOT a fuzzer, but a collection of reusable pieces of fuzzers written in Rust. +LibAFL helps you writing your own custom fuzzer, tailored for a specific target or for a particular instrumentation backend, without reinventing the wheel or forking an existing fuzzer. + +## Why you should use LibAFL + +TODO list here killer features (no_std, multi platform, scalability, ...) diff --git a/docs/src/libafl.md b/docs/src/libafl.md new file mode 100644 index 0000000000..1f9b512823 --- /dev/null +++ b/docs/src/libafl.md @@ -0,0 +1,9 @@ +# The LibAFL Fuzzing Library + +*by Andrea Fioraldi and Dominik Maier* + +This version of the LibAFL book is coupled with the release 1.0 beta of the library. + +This document is still incomplete, and extremely work-in-progress. The structure and the concepts explained here will likely change a lot in the future, as the structure of LibAFL itself will change. + +The HTML version of this book is available online at PLACEHOLDER and offline from the LibAFL repository in the docs/ folder.