blob: 6eb7e7af3aad90b0ec9ac7fac1511fd0df446563 [file] [log] [blame]
2023-09-21 - Version 2.6
- Pastis patch
- env NO_COLOR support
- fix problems with linux/bfd ```init_disassemble_info```
- Support ```--exit_on_time```
- ```strlcat``` supported in libhfuzz/memorycmp
- Some patches for MacOSX, sadly no support for ARM yet
- added missing ```add missing disassemble_free_target()```
- using ```rfork()``` under FreeBSD
- support for enabling/disabling ASLR under FreeBSD
2022-01-01 - Version 2.5
- fixed build for Android NDK >= 23
- fixed build for CygWin
- improved hfuzz-cc, so it supports -x<language> correctly
- error returned if unknown cmd-line parameters are provided
- support for thread CPU pinning
- various fixes for *BSD
- increased number of dictionary entries (to 8192)
2021-02-24 - Version 2.4
- better NetBSD support (compatiblity)
- fixed mangle_getLen() #360
- disabled --linux_net_ns by default, as the Linux kernel dies under heavy load of new net namespaces
- added support for address compression in IntelPT mode
- simplified input_skipFactor() which now yields better results (faster coverage acquisition)
- added --save_smaller for the use with Rust fuzzing
- fixed Android build under MacOSX
- simplified some mangle() functions
2020-07-22 - Version 2.3
- honggfuzz.h - split run_t into substructs
- clang-format options in .clang-format
- added missing mutex initializers
- removed unncessary comparisons to 'true' and 'false'
- improved NetBSD compatibility
- removed unnecessary memory fences (speed ups)
- faster searching through the binary for const 4/8-byte values
- removed unnecessary includes with iwyu
- libhfnetdriver - general improvements around local socket fuzzing and timeouts
2020-04-24 - Version 2.2
- Added 8bitcnt instrumentation - use hfuzz-cc/hfuzz-8bitcnt-(gcc|clang) for that
- PC-guard instrumentation now uses edge counting
- --experimental_const_feedback is now set to true by default
- additional string instrumentation wrappers: glib, lcms
- additional mutators: splicing, changing ascii numbers
- additional integer comparison instrumentation (adding integers to the dynamic dictionary)
- fixed linking with ld.lld
- removed `sanitizer-coverage-prune-blocks` from hfuzz-cc.c
- most mutators have now either overwrite or insert versions
- fixed memory barriers in libhfuzz/
- implemented skip_factor which dictates how often a given input is fuzzed
- lowered the default timeout to 1 second
- honggfuzz now uses microseconds, instead of milliseconds across the code
- added some new functions to libhfcommon/files
- enabled more aggressive inlining in hfuzz-cc/
- fixed compilation dependency under MacOS X
2020-03-03 - Version 2.1
- string/int comparison enabled for targets built with *SAN, but w/o hfuzz-cc
- Parallel work made faster by using faster ATOMIC constructs (check first, then update)
- Implement --experimental_const_feedback - const string/integer feedback (used as an additional dictionary)
- Sanitizer report files are "better"-deleted (i.e. based on PID and not TID)
- New patches for fuzzing added (e.g. for bind-9.16.0/9.15.7)
- Buffered output enabled in display.c
- Some functions moved from per-arch arch.c to common subproc.c
- Compilation under MacOS X 10.15 (Catalina) is now supported
- Added suport for bfd/binutils-2.33
2019-12-07 - Version 2.0
- Coverage-based corpus minimizer with '-M'
- QEmu mode: coverage feedback for Linux binaries
- *SAN sanitizer stack-parsing improved for Linux and for POSIX
- Move signal functionality to libhfcommon/
- Fixed Android builds with newer unwind and capstone
- NetDriver: more functionality - e.g. specifying custom addresses and custom tmpfs mount points
- Examples: for /usr/bin/file, newer ISC Bind patch, improved OpenSSL code
2019-05-22 - Version 1.9
- Don't include netdriver if not needed
- Updated examples (bind/openssl)
- Add missing TEMP_FAILURE_RETRY() wrappers
- Add additional _HF_STATE_DYNAMIC_SWITCH_TO_MAIN state
2019-02-23 - Version 1.8
- Native support for NetBSD
- Multiple smaller changes wrt threading - e.g. introducing the signal thread
- Removed the support for -p (pid fuzzing), honggfuzz net driver, or persistent fuzzing mode should be used instead
- Reimplementation of memory comparison routines, now verified with glibc's test-suite
- Improved hfuzz-cc/clang/gcc - e.g. for the MacOSX platform, also using -fno-sanitize=fuzzer if -fsanitize=fuzzer is specified, + some samba code wrappers
- Examples: new corpora for some of those, new patch for ISC Bind (9.13.5)
2018-08-23 - Version 1.7
- Native support for NetBSD
- ASCII only fuzzing
- Updated corpora for ISC Bind
- Printing final stats upon exit
- Refreshed support for Intel PT
- Support for __sanitizer_cov_trace_div
- Updated fuzzing examples for OpenSSL
2018-04-19 - Version 1.6 (rev aeaad48)
- Fixed Dockerfile
- Fixed a few format problems with file reporting
- Updated display formatting
- Make it work under WSL (Windows Subsystem for Linux)
2018-02-22 - Version 1.5 (rev 3b1b70b)
- Persistent fuzzing now works with MacOS-X
- Fixed some examples/ to make it work with MacOS-X
- Should compile cleanly with newer MacOS-X versions
2018-02-07 - Version 1.4 (rev 28c7d9e)
- Socketfuzzer by @dobin
- TCP fuzzer (HonggFuzzer NetDriver) in libhfnetdriver
- Display: changed layout a bit
- Fix some compilation isuses for MacOS-X
- Make it compile with OpenBSD
- Better examples/ dir: Apache HTTP, ISC Bind
- Added persistent and netdriver signatures
- Added missing symbols for newer -fsanitize-coverage (const)
- Changed internal structures (global vs run)
- Android: Make it compile with newer SDKs
2017-12-09 - Version 1.3 (rev dd9f149)
- Software instrumentation - support for cmp_const __sanitizer_cov_trace_const funcs
- Refreshed (mostly) OpenSSL corpora
- Mangling: additional function for ASCII numbers
- Support for RLIMIT_DATA limiting
- Better UI scrolling
- Simplified Intel PT decoder
- Removed defer{} / fblocks from libhfuzz
- Google-style intendation with clang-format
- Faster locks over global corpora of files
2017-11-01 - Version 1.2 (rev 8e04633)
- Software-based coverage feedback (-z) is now enabled by default, can be disabled with (-x)
- Better sigprocmask manipulation before executing a process
- Updated fuzzing corpora for ssl packages
- Updated Apache HTTPD compilation script/patch, corpora, config and string instrumentation
- Updated ISC Bind config and fuzzing corpora
- Fixes for the Android build (thanks to Zach Riggle and Anestis Bechtsoudis)
- Indentation fixes, now clang-format is used
2017-06-23 - Version 1.1 (rev ee3a530)
- Simplified and improved hfuzz_cc compiler
- More string instrumentation in libhfuzz
- Android: works with Android-NDK 15 and newer only
- Dockerfile
- Refreshed docs
- Linux: Faster BTS/PT due to less PMU state resets
- Linux: tests and by-pass for the Linux' fork-when-multithreaded problem
- libFuzzer/AFL style dictionaries
- Runnable under docker/oss-fuzz
2017-05-23 - Version 1.0 (rev 4332ae9)
- Multiple stability improvements for most of the supported architectures
- More examples in examples/ (e.g. Linux kernel IP for BTS/PT)
- Documentation updates
- Added honggfuzz compiler wrapper in hfuzz_cc/
- Reworked buffer mangling logic
2016-02-14 - Version 0.9 (rev b0d1118)
- Clang >= 4.0 -fsanitize-coverage=trace-pc-guard,indirect-calls,trace-cmp support
- Multiple examples in examples/
- --pprocess_cmd for input post-processing
2016-09-01 - Version 0.8 (rev 6b9efac)
- Clang >= 4.0 -fsanitize-coverage=trace-pc,indirect-calls,trace-cmp support
- GCC/Clang -finstrument-functions support
- Persistent fuzzing mode (-P) for Linux and POSIX
- Mutiple smaller fixes (display, stability)
2016-03-15 - Version 0.7 (rev 6d01e82)
- Asan code-coverage (SANCOV) available for all platforms (incl. Windows)
- Support for Intel PT under Linux v4.0 and newer (and Broadwell/Skylake/newer Intel CPUs)
- Should work under: Linux, FreeBSD, Mac OS X, Windows/Cygwin, possibly other POSIX-compliant systems
2015-08-14 - Version 0.6 (rev aa61adb)
- Improvements to feedback-driven fuzzing. Using bloom-style filter to record branches (much faster).
- Using multiple hardware-assisted feedback signals at once.
- Multiple small things: usage notes, logging
2015-02-26 - Version 0.5 (revision 284)
- Feedback-driven fuzzing on Linux (using Intel's BTS with Linux perf infrastructure for branch counting) (-Dp option)
- Compiles cleanly and works under FreeBSD 10.1
- Uses libbfd/libunwind (under Linux) to disassemble offending instructions
- Many smaller fixes
2015-02-01 - Version 0.4 (revision 72)
- Switch from udis86 to capstone (Capstone is available in many Linux distros as opposed to udis86)
- OSX 10.10 support
- Many smaller fixes (esp. for MacOS)
2011-07-02 - Version 0.3 (revision 37)
- Honggfuzz now allows attaching to an external process (-p) (Linux only)
- -f no longer required when -c (external command) is specified
- Smaller fixes (typos)
2011-06-02 - Version 0.2 (revision 26)
- MacOS fixes (parsing DiagnosticReports) - solves http://code.google.com/p/honggfuzz/issues/detail?id=2
- getopt() returns 'int' and not 'char' (could hang the process in a forever-loop)
- Formatting changes
- Updated comments/usage
2010-12-13 - Initial release 0.1 (revision 13)