riufuzz —— honggfuzz modifited version by riusksk, better support for windows (cdb symbols) and macOS, and more colorful UI
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 219 commits ahead, 1433 commits behind google:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
android add fuzzer script; fix android compile bug; add filedownload.pl; add … Jan 3, 2017
dict update dict Aug 27, 2017
docs replace ___FILE___ with @@ Nov 25, 2017
examples replace ___FILE___ with @@ Nov 25, 2017
externalfuzzers radamsa Oct 7, 2017
fuzzer add exec prop Feb 2, 2018
libhfuzz add fuzz script Dec 7, 2016
linux update Mar 3, 2018
mac add remove duplicate crash function with cdb Feb 5, 2018
posix format Feb 12, 2018
third_party add cdb script Nov 25, 2017
tools add tmin Feb 8, 2018
.gitignore git ignore Feb 8, 2018
CHANGELOG Info about trace-pc-guard in docs/comments Oct 3, 2016
CONTRIBUTING Added CONTRIBUTING Aug 20, 2015
COPYING Init Oct 14, 2010
Makefile suport macOS 10.13 Nov 25, 2017
README.md update readme Feb 11, 2018
arch.h arch_runVerifier Feb 5, 2018
cmdline.c add 3d asscii art Jan 1, 2018
cmdline.h Typos in the *.h guard macros Feb 9, 2016
common.h v1.1 Feb 6, 2018
display.c update readme Feb 11, 2018
display.h 固定界面显示位置 Sep 15, 2017
dry_run_win.png update readme Feb 11, 2018
dumb_mac.png add mac png Feb 13, 2018
external.png update readme Feb 11, 2018
files.c remove duplicate crash in windows Feb 5, 2018
files.h fix bug Feb 5, 2018
fuzz.c fix resource temporarily unavailable bug with replace cp command with… Feb 6, 2018
fuzz.h 支持中断后各线程退出 May 15, 2017
honggfuzz.c 固定界面显示位置 Sep 15, 2017
log.c 固定界面显示位置 Sep 15, 2017
log.h 固定界面显示位置 Sep 15, 2017
makeAndroid.sh add fuzzer script; fix android compile bug; add filedownload.pl; add … Jan 3, 2017
mangle.c No need to specify struct name in TAILQ_HEAD Oct 3, 2016
mangle.h The first pass is dry pass for dynamic files Mar 14, 2016
report.c add name Feb 2, 2018
report.h Improve *.h guard macros Feb 9, 2016
sancov.c add fuzzer script; add check_font_tables and filedownload script Dec 26, 2016
sancov.h add screen image Nov 19, 2016
screen.png update screen Nov 24, 2016
subproc.c suport macOS 10.13 Nov 25, 2017
subproc.h 支持中断后各线程退出 May 15, 2017
util.c Bug fix: rndBuf was generating only 0 or 1 value Oct 15, 2016
util.h Implement util_rnd64 Sep 25, 2016

README.md

riufuzz

Feedback-Driven Mode in Linux

Dry Run Mode in Windows/Cygwin

External Mode in Windows/Cygwin

Dumb Fuzzing Mode in macOS

2018-02-06 更新说明

  1. 发布v1.1版本
  2. 增加Windows崩溃样本去重功能
  3. 使用cdb自动分析崩溃,包括可利用性、漏洞类型,以及栈回溯等信息
  4. 增加External Fuzzer运行模式
  5. 增加bing_download脚本用于批量下载样本
  6. 修复cygwin下的多处bug

2018-01-01 更新说明

  1. 更新运行时间格式
  2. 使用 cdb 监控 windows 平台下的应用崩溃,并添加相应的设置脚本
  3. 支持 macOS 10.13
  4. 在 Dry Run 模式下增加剩余时间
  5. 使用 "@@" 代替 "___FILE___"
  6. 增加 "--monitor_sigabrt" 选项以支持忽略abort信号
  7. Windows平台 Dry Run 模式下崩溃样本名称包含原始文件名
  8. 更改 coverage 显示信息

2017-09-15 更新说明

  1. 修复无样本后缀名的bug
  2. 修复sprintf栈溢出漏洞
  3. 修复cygwin下程序名提取的显示bug
  4. 增加"Dry Run Mode"模式,用于验证漏洞,并不做文件变异处理
  5. 变更界面高亮风格
  6. 仅在漏洞被验证后才会发送邮件通知
  7. 移植新版honggfuzz中的界面固定显示位置的功能
  8. 更换安装目录,免去root权限安装
  9. 添加Windows平台下基于cdb.exe的崩溃监控脚本

2017-07-02 更新说明

  1. 修复cygwin下样本路径识别错误的问题
  2. 支持中断后各线程退出
  3. 显示输入的样本数
  4. 去掉变异文件的隐藏性
  5. 增加发现漏洞时的邮件通知(配置方法参见《Mac OS X 下用命令行发送邮件》

2017-04-20 更新说明

  1. 增加字体格式分析脚本;
  2. 增加 google 批量文件下载工具;
  3. 添加 fuzzer 脚本;
  4. 增加针对闭源程序的基于代码覆盖率的样本筛选工具;
  5. 使用样本绝对路径,解决部分软件无法识别样本路径的问题;
  6. 增加百度 pdf 批量下载脚本;
  7. 修复 macOS 10.12.4 系统下的编译问题;
  8. 添加 libarchiver fuzzer
  9. 添加Windows GUI 程序崩溃监控

2016-12-03 更新说明

  1. fix bug:保留后缀名的bug;
  2. 增加显示最后一次新路径发现距离现在的时长;
  3. 移植afl中的各种不同文件格式的字典文件,通过-w可直接传递使用
  4. 添加make install安装命令
  5. 精简CPU使用率的显示
  6. 添加macOS系统下的fuzzing脚本

2016-11-20 更新说明

  1. 修改显示内容,高亮标题,精简内容;
  2. 增加-e any参数选项,以保持原始样本后缀,因为有些GUI程序有检测后缀名(默认为.fuzz),设置后则允许同时fuzzing多种文件格式,比如图片格式;
  3. fix bug: 增加Windows平台下的超时检测,若超时则自己关闭程序;
  4. 修复-C代码覆盖率驱动导致无语料库输入则中断的bug,保证能生成sancov.map等文件;
  5. 增加扩展fuzzer的功能,通过-c参数(原始功能无法使用,只会生成空文件导致程序中断)指定fuzzer文件名,默认传递样本(文件名为honggfuzz.*的格式),它会代替原有的fuzzer策略;
  6. 当硬盘空间不足时,自动提醒并等待用户清理完毕后,输入y命令即可继续fuzzing。
  7. 增加execvp执行结果检测,以匹配最新版macOS,虽无实际功能,但若不增加,有时可能会因此导致无法正常启动目标程序。

Description

  • A general-purpose, easy-to-use fuzzer with interesting analysis options. See USAGE for details
  • Supports several hardware-based (CPU) and software-based feedback-driven fuzzing methods
  • It works (at least) under GNU/Linux, FreeBSD, Mac OS X, Windows/CygWin and Android
  • Supports persistent modes of fuzzing (long-lived process calling a fuzzed API repeatedly) with libhfuzz
  • Can fuzz standalone long-lasting processes (e.g. network servers like Apache's httpd and ISC's bind)

Code

Requirements

  • Linux - The BFD library (libbfd-dev) and libunwind (libunwind-dev/libunwind8-dev)
  • FreeBSD - gmake
  • Android - Android SDK/NDK. Also see this detailed doc on how to build and run it
  • Windows - CygWin
  • if Clang/LLVM is used - the BlocksRuntime Library (libblocksruntime-dev)

Trophies

The tool has been used to find a few interesting security problems in major software packages; Examples:

Other

This is NOT an official Google product.