All Projects → google → Honggfuzz

google / Honggfuzz

Licence: apache-2.0
Security oriented software fuzzer. Supports evolutionary, feedback-driven fuzzing based on code coverage (SW and HW based)

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Honggfuzz

Sienna Locomotive
A user-friendly fuzzing and crash triage tool for Windows
Stars: ✭ 130 (-94.58%)
Mutual labels:  fuzzing
Fuzzinator
Fuzzinator Random Testing Framework
Stars: ✭ 164 (-93.17%)
Mutual labels:  fuzzing
Fast Check
Property based testing framework for JavaScript (like QuickCheck) written in TypeScript
Stars: ✭ 2,604 (+8.5%)
Mutual labels:  fuzzing
Janus
Janus: a state-of-the-art file system fuzzer on Linux
Stars: ✭ 139 (-94.21%)
Mutual labels:  fuzzing
Fuddly
Fuzzing and Data Manipulation Framework (for GNU/Linux)
Stars: ✭ 156 (-93.5%)
Mutual labels:  fuzzing
Fuzzfactory
Domain-Specific Fuzzing with Waypoints
Stars: ✭ 167 (-93.04%)
Mutual labels:  fuzzing
Snodge
Randomly mutate JSON, XML, HTML forms, text and binary data for fuzz testing
Stars: ✭ 121 (-94.96%)
Mutual labels:  fuzzing
Papers
Academic papers and articles that I read related to web hacking, fuzzing, etc. / 阅读过的Web安全方向、模糊测试方向的一些论文与阅读笔记
Stars: ✭ 181 (-92.46%)
Mutual labels:  fuzzing
Grammarinator
ANTLR v4 grammar-based test generator
Stars: ✭ 162 (-93.25%)
Mutual labels:  fuzzing
Pythonfuzz
coverage guided fuzz testing for python
Stars: ✭ 175 (-92.71%)
Mutual labels:  fuzzing
Fuzzing Stuff
Resources About Fuzzing, For Multiple Platforms And All Popular Fuzzers. 500+ Open Source Tools Sorted By Star Count, 800+ Blog Posts Sorted By Publish Time.
Stars: ✭ 144 (-94%)
Mutual labels:  fuzzing
Libdiffuzz
Custom memory allocator that helps discover reads from uninitialized memory
Stars: ✭ 147 (-93.87%)
Mutual labels:  fuzzing
Kleefl
Seeding fuzzers with symbolic execution
Stars: ✭ 172 (-92.83%)
Mutual labels:  fuzzing
Winafl
A fork of AFL for fuzzing Windows binaries
Stars: ✭ 1,826 (-23.92%)
Mutual labels:  fuzzing
Vfuzz
vfuzz
Stars: ✭ 178 (-92.58%)
Mutual labels:  fuzzing
Reflekt
Reflective testing.
Stars: ✭ 128 (-94.67%)
Mutual labels:  fuzzing
Morph
An open source fuzzing framework for fun.
Stars: ✭ 166 (-93.08%)
Mutual labels:  fuzzing
Sharpfuzz
AFL-based fuzz testing for .NET
Stars: ✭ 185 (-92.29%)
Mutual labels:  fuzzing
Qrgen
Simple script for generating Malformed QRCodes.
Stars: ✭ 178 (-92.58%)
Mutual labels:  fuzzing
Raccoon
A high performance offensive security tool for reconnaissance and vulnerability scanning
Stars: ✭ 2,312 (-3.67%)
Mutual labels:  fuzzing

Honggfuzz

Description

A security oriented, feedback-driven, evolutionary, easy-to-use fuzzer with interesting analysis options. See the Usage document for a primer on Honggfuzz use.

Code

Features

  • It's multi-process and multi-threaded: there's no need to run multiple copies of your fuzzer, as honggfuzz can unlock potential of all your available CPU cores with a single running instance. The file corpus is automatically shared and improved between all fuzzed processes.
  • It's blazingly fast when the persistent fuzzing mode is used. A simple/empty LLVMFuzzerTestOneInput function can be tested with up to 1mo iterations per second on a relatively modern CPU (e.g. i7-6700K).
  • Has a solid track record of uncovered security bugs: the only (to the date) vulnerability in OpenSSL with the critical score mark was discovered by honggfuzz. See the Trophies paragraph for the summary of findings to the date.
  • Uses low-level interfaces to monitor processes (e.g. ptrace under Linux and NetBSD). As opposed to other fuzzers, it will discover and report hijacked/ignored signals from crashes (intercepted and potentially hidden by a fuzzed program).
  • Easy-to-use, feed it a simple corpus directory (can even be empty for the feedback-driven fuzzing), and it will work its way up, expanding it by utilizing feedback-based coverage metrics.
  • Supports several (more than any other coverage-based feedback-driven fuzzer) hardware-based (CPU: branch/instruction counting, Intel BTS, Intel PT) and software-based feedback-driven fuzzing modes. Also, see the new qemu mode for blackbox binary fuzzing.
  • Works (at least) under GNU/Linux, FreeBSD, NetBSD, Mac OS X, Windows/CygWin and Android.
  • Supports the persistent fuzzing mode (long-lived process calling a fuzzed API repeatedly). More on that can be found here.
  • It comes with the examples directory, consisting of real world fuzz setups for widely-used software (e.g. Apache HTTPS, OpenSSL, libjpeg etc.).
  • Provides a corpus minimization mode.


Requirements

  • Linux - The BFD library (libbfd-dev) and libunwind (libunwind-dev/libunwind8-dev), clang-5.0 or higher for software-based coverage modes
  • FreeBSD - gmake, clang-5.0 or newer
  • NetBSD - gmake, clang, capstone, libBlocksRuntime
  • Android - Android SDK/NDK. Also see this detailed doc on how to build and run it
  • Windows - CygWin
  • Darwin/OS X - Xcode 10.8+
  • if Clang/LLVM is used to compile honggfuzz - link it with the BlocksRuntime Library (libblocksruntime-dev)

Trophies

Honggfuzz has been used to find a few interesting security problems in major software packages; An incomplete list:

Projects utilizing or inspired-by Honggfuzz

Contact

This is NOT an official Google product

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].