Honggfuzz 安装与使用

Honggfuzz

1.安装

$ mkdir honggfuzz
$ cd honggfuzz
$ git clone https://github.com/google/honggfuzz.git
$ cd honggfuzz
$ make

报错: bdf.h:没有那个文件或目录,执行下列语句解决问题后重新make

$ apt-get install binutils-dev

报错:libunwind-ptrace.h: No such file or directory,执行下列命令,解决问题后重新make

$ apt-get install libunwind-dev
$ make
$ make install

2.使用

honggfuzz -f input_dir -z -s – /usr/bin/djpeg -f : 指定初始样本集目录 -z : 使用编译时的指令插桩信息来 为 样本变异做回馈, 默认选项 -s : 表示目标程序从 stdin 获取输入,即样本数据通过 stdin 喂给程序

honggfuzz -f input_dir – /usr/bin/djpeg FILE FILE : 类似于 afl 的 @@ , 表示程序通过文件获取输入,fuzz 过程会被替换为相应的样本文件名

honggfuzz -f input_dir -P – /usr/bin/djpeg_persistent_mode -P : 表示使用 persistent 模式

测试如下 test.c

#include <stdio.h>

int main() {

    char buf[100] = {0};

    gets(buf);   // stack overflow
    if (buf[0] == 'A')
        printf("hello\n");
    else
        printf("NO A\n");

    return 0;
}
hfuzz-clang test.c -o test  // 插桩
mkdir in
echo "hello" > ./in/testcase	// 生成语料库,用于初始输入
honggfuzz -P -f ./in -W ./out -- ./test			// 开始fuzz

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值