libFuzzer教程

环境配置

$ sudo apt update 
$ sudo apt-get install clang-6.0 
$ update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-6.0 1000 
$ update-alternatives --install /usr/bin/clang clang /usr/bin/clang-6.0 1000 
$ update-alternatives --config clang 
$ update-alternatives --config clang++ 
$ sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang  100 $ sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 100
$ sudo apt-get install wget
$ sudo apt-get install make
$ sudo apt-get install git
$ git clone https://github.com/vincenthz/libjson

# Install git and get this tutorial
sudo apt-get --yes install git

git clone https://github.com/google/fuzzing.git fuzzing

# Get fuzzer-test-suite
git clone https://github.com/google/fuzzer-test-suite.git FTS

./fuzzing/tutorial/libFuzzer/install-deps.sh  # Get deps
./fuzzing/tutorial/libFuzzer/install-clang.sh # Get fresh clang binaries

fuzz libjson

修改makefile

AR = ar
CC = clang
CFLAGS ?= -g -fsanitize=address -fsanitize-coverage=trace-pc-guard -Wall -Os -fPIC
LDFLAGS = -L.
SHLIB_CFLAGS = -shared

make clean && make

编译测试驱动

clang -g -fsanitize=address,fuzzer target.c -c 

链接将库,驱动和libFuzzer 的目标文件

clang++ -g -fsanitize=address,fuzzer json.o	target.o -o out

执行

./out
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值