Average Ratings 0 Ratings
Average Ratings 0 Ratings
Description
LibFuzzer serves as an in-process, coverage-guided engine for evolutionary fuzzing. By being linked directly with the library under examination, it injects fuzzed inputs through a designated entry point, or target function, allowing it to monitor the code paths that are executed while creating variations of the input data to enhance code coverage. The coverage data is obtained through LLVM’s SanitizerCoverage instrumentation, ensuring that users have detailed insights into the testing process. Notably, LibFuzzer continues to receive support, with critical bugs addressed as they arise. To begin utilizing LibFuzzer with a library, one must first create a fuzz target—this function receives a byte array and interacts with the API being tested in a meaningful way. Importantly, this fuzz target operates independently of LibFuzzer, which facilitates its use alongside other fuzzing tools such as AFL or Radamsa, thereby providing versatility in testing strategies. Furthermore, the ability to leverage multiple fuzzing engines can lead to more robust testing outcomes and clearer insights into the library's vulnerabilities.
Description
AFL-Unicorn provides the capability to fuzz any binary that can be emulated using the Unicorn Engine, allowing you to target specific code segments for testing. If you can emulate the desired code with the Unicorn Engine, you can effectively use AFL-Unicorn for fuzzing purposes. The Unicorn Mode incorporates block-edge instrumentation similar to what AFL's QEMU mode employs, enabling AFL to gather block coverage information from the emulated code snippets to drive its input generation process. The key to this functionality lies in the careful setup of a Unicorn-based test harness, which is responsible for loading the target code, initializing the state, and incorporating data mutated by AFL from its disk storage. After establishing these parameters, the test harness emulates the binary code of the target, and upon encountering a crash or error, triggers a signal to indicate the issue. While this framework has primarily been tested on Ubuntu 16.04 LTS, it is designed to be compatible with any operating system that can run both AFL and Unicorn without issues. With this setup, developers can enhance their fuzzing efforts and improve their binary analysis workflows significantly.
API Access
Has API
API Access
Has API
Integrations
Atheris
C
C++
ClusterFuzz
Fuzzbuzz
Google ClusterFuzz
Jazzer
Integrations
Atheris
C
C++
ClusterFuzz
Fuzzbuzz
Google ClusterFuzz
Jazzer
Pricing Details
Free
Free Trial
Free Version
Pricing Details
Free
Free Trial
Free Version
Deployment
Web-Based
On-Premises
iPhone App
iPad App
Android App
Windows
Mac
Linux
Chromebook
Deployment
Web-Based
On-Premises
iPhone App
iPad App
Android App
Windows
Mac
Linux
Chromebook
Customer Support
Business Hours
Live Rep (24/7)
Online Support
Customer Support
Business Hours
Live Rep (24/7)
Online Support
Types of Training
Training Docs
Webinars
Live Training (Online)
In Person
Types of Training
Training Docs
Webinars
Live Training (Online)
In Person
Vendor Details
Company Name
LLVM Project
Founded
2003
Website
llvm.org/docs/LibFuzzer.html
Vendor Details
Company Name
Battelle
Website
github.com/Battelle/afl-unicorn