用AFL编译开源软件
写在开头,附上参考链接
接上一篇我对AFL的入门实践 AFL的入门学习
实验环境
ubuntu 16.04(虚拟机) 内存分配4gb
afl 2.52b
以 bento4 为例
Bento4 is a C++ class library and tools designed to read and write ISO-MP4 files.
- 下载
1
sudo git clone https://github.com/axiomatic-systems/Bento4
- 解压
1
sudo unzip Bento4-master.zip
- 新建一个文件夹,并选择编译器
这里虚拟机记得赋予权限sudo,服务器上为root可能不需要
- gcc/g++重新编译目标程序的方法是:
CC=/path/to/afl/afl-gcc ./configure
- 对于一个C++程序,要设置:
CXX=/path/to/afl/afl-g++
afl-clang和afl-clang++的使用方法类似
1 |
|
如出现下图则说明编译成功
- make编译
显示下图则说明编译成功,等待片刻即可进行下一步操作
此时输入file **
即可发现生成的为elf文件
- 进行fuzz
1
sudo afl-fuzz -i /your/tesecase -o /your/fuzz_out_file ./elf_file @@ /dev/null
- 这里的测试文件(input)后面不要加路径”/“,输出文件可自动生成
- 可以加参数 -m ,的数字即代表使用多少内存来运行
这个时间比较漫长,耐心等待即可(一个空的样例基本需要半个小时)。最好在服务器上跑。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!