-
Stefan Nagy authoredStefan Nagy authored
To learn more about this project, read the wiki.
README.md 10.67 KiB
ZAFL: Zipr-based AFL
Welcome to ZAFL: a project to extend compiler-quality instrumentation speed and transformation support to the fuzzing of x86-64 binary programs. The key features of ZAFL include:
- Fast, space-efficient, and inlined binary fuzzing instrumentation via the Zipr binary rewriting infrastructure.
- A platform to extend and combine compiler-style code transformations (e.g., CMP unfolding) to binary-only fuzzing.
- Full compatibility with the AFL and AFLPlusPlus fuzzer ecosystem.
- For more information, video demos, troubleshooting, and licensing, please see our wiki page.
Presented in our paper Breaking-through Binaries: Compiler-quality Instrumentation for Better Binary-only Fuzzing (2021 USENIX Security Symposium). |
|
Citing this repository: | @inproceedings{nagy:breakingthrough, title = {Breaking Through Binaries: Compiler-quality Instrumentation for Better Binary-only Fuzzing}, author = {Stefan Nagy and Anh Nguyen-Tuong and Jason D. Hiser and Jack W. Davidson and Matthew Hicks}, booktitle = {{USENIX} Security Symposium (USENIX)}, year = {2021},} |
Licensing: | See our Licensing wiki page. |
Disclaimer: | This software is provided as-is with no warranty. |
Prerequisites
- Install environment: ZAFL's installation currently supports recent 64-bit Linux environments (i.e., Ubuntu 16.04 and up).
- Supported binaries: ZAFL supports instrumenting/transforming x86-64 Linux binaries of varying type (C and C++, stripped and unstripped, and position independent and position-non-independent). At this time, ZAFL cannot support binaries with DRM, obfuscation, or tamper-resistant protections.
- Windows binaries: ZAFL offers preliminary cross-platform instrumentation support for Windows 7 PE32+ binaries, though WinAFL-compatible fuzzing instrumentation is not yet supported at this time.
- Recommended installation: For first-time users we recommend the Docker-based installation. For developers and advanced users we recommend the source-based installation.
Installation from Docker (recommended)
The following instructions assume you are running a compatible Linux environment (i.e., Ubuntu 16.04 and up) with AFL installed.
Step 0: Install the libzafl support library
See the instructions located here: https://git.zephyr-software.com/opensrc/libzafl