libtiff介绍
下载地址:http://dl.maptools.org/dl/libtiff/
版本:3.8.2
libtiff是一个用来读写标签文件格式的库。
测试
从上面的地址下载libtiff文件,编译:
CC=/path/to/afl/afl-clang-fast CXX=/path/to/afl/afl-clang-fast++ ./configure --disable-shared
make clean
make
编译完成后,查看tools文件夹:
我们选取第一个,bmp2tiff进行测试,该文件主要是对bmp格式的图片进行操作,将bmp格式的图片转化为tif格式的图片,所以测试用例,我们选用.bmp格式的图片。
在afl官网上,可以下载到相关格式的测试用例:http://lcamtuf.coredump.cx/afl/demo/
使用afl-cmin减少测试用例:
afl-cmin -i /testcase -o /out_test /path/to/libtiff/tools/bmp2tiff @@ /dev/null
500多个测试用例精简到了70个。
(注意命令最后的/dev/null命令,该命令是不输出错误信息到屏幕中,然而,如果执行afl-cmin时,不加该命令,则最后精简成了一个测试用例)
接下来进行测试:
afl-fuzz -i testcase/ -o out_dir/ tools/bmp2tiff @@ /dev/null
不加/dev/null时:
参考:
http://files.meetup.com/17933012/2015-03-introduction-fuzzing-with-afl.pdf