The Fuzzing Book

@TheFuzzingBook
344 Followers
0 Following
11 Posts
Official account for "The Fuzzing Book" (https://www.fuzzingbook.org) by @AndreasZeller, @rahul, @mboehme, Gordon Fraser, and Christian Holler
Websitehttps://www.fuzzingbook.org/

A new look! We have created a new version of The Fuzzing Book, based on #JupyterBook, bringing

* easier navigation
* dark mode
* search
* mobile layout

and lots of other features. Check it out at https://www.fuzzingbook.org/beta/html/index.html
Should we continue with this new look? Comments are welcome!

Yes, go with the new look
88.9%
No, stick to the classic look
11.1%
Poll ended at .
The Fuzzing Book — The Fuzzing Book

Just pushed out The Fuzzing Book 1.2.2. This release adds better support for recent Python versions.

To update to the latest and greatest, use

$ pip install —upgrade fuzzingbook

Full release notes: https://www.fuzzingbook.org/html/ReleaseNotes.html

Fuzzingbook Release Notes - The Fuzzing Book

This book and its code use numbered versioning. The version numbers correspond to the version numbers in the Python pip package.

We have reworked the integration with the #mybinder platform, and you can now again interact with notebooks right in your browser (now using #JupyterLab instead of Jupyter Notebook).
As an example, here’s the notebook on fuzzing with grammars: https://mybinder.org/v2/gh/uds-se/fuzzingbook/HEAD?labpath=docs%2Fnotebooks/Grammars.ipynb

You can access these from any chapter in https://www.fuzzingbook.org via “Resources” → “Edit as Notebook”. Enjoy!

GitHub: uds-se/fuzzingbook/HEAD

Click to run this interactive environment. From the Binder Project: Reproducible, sharable, interactive computing environments.

@AndreasZeller That’s about as many pages as volumes 1-3 of the Lord of the Rings
When formatted as a PDF, @TheFuzzingBook now has 1,477 pages
@pancake Simple! Just checkout the source at https://github.com/uds-se/fuzzingbook/ and then do "make epub” (also: "make pdf", “make markdown”, “make word” and more). However, these are all experimental – the “official” HTML format is the one that is supported
GitHub - uds-se/fuzzingbook: Project page for "The Fuzzing Book"

Project page for "The Fuzzing Book". Contribute to uds-se/fuzzingbook development by creating an account on GitHub.

GitHub
Happy new year! The chapter on Testing Compilers (in which we build a feature-rich fuzzer for Python) now comes with an all-new introduction video. Enjoy! https://www.fuzzingbook.org/html/PythonFuzzer.html
Testing Compilers - The Fuzzing Book

In this chapter, we will make use of grammars and grammar-based testing to systematically generate program code – for instance, to test a compiler or an interpreter. Not very surprisingly, we use Python and the Python interpreter as our domain.We chose Python not only because the rest of the book is also based on Python.Most importantly, Python brings lots of built-in infrastructure we can leverage, especially parsers that convert Python code into an abstract syntax tree (AST) representation and unparsers that take an AST and convert it back into Python code.This allows us to leverage grammars that operate on ASTs rather than concrete syntax, greatly reducing complexity.Prerequisites You must read the chapter on Fuzzing with Grammars to understand how grammars and grammar-based testing work.

Just pushed out The Fuzzing Book 1.2.1. This release fixes a nasty bug that would accidentally set a fixed random seed when importing fuzzingbook classes.

To update to the latest and greatest, use

$ pip install --upgrade fuzzingbook

Full release notes:
https://www.fuzzingbook.org/html/ReleaseNotes.html

Fuzzingbook Release Notes - The Fuzzing Book

This book and its code use numbered versioning. The version numbers correspond to the version numbers in the Python pip package.

The Fuzzing Book 1.2 is out! This release includes
* a new chapter on fuzzing with constraints
* a new chapter on compiler testing
* support for Python 3.9-3.12
All new features: https://www.fuzzingbook.org/html/ReleaseNotes.html
Fuzzingbook Release Notes - The Fuzzing Book

This book and its code use numbered versioning. The version numbers correspond to the version numbers in the Python pip package.