AFL

AFL和Fuzz学习笔记。

参考链接:

安装

AFL

安装clang和llvm

1
2
sudo apt-get install clang
sudo apt-get install llvm

下载并安装AFL

1
2
3
4
5
wget http://lcamtuf.coredump.cx/afl/releases/afl-latest.tgz
tar -xzvf afl-2.52b.tgz
cd afl-2.52b
make
sudo make install

支持无源码Fuzz

1
2
3
4
5
# 在afl目录下
cd qemu_mode
./build_qemu_support.sh
cd ..
make install

AFL++

1
sudo apt intsall afl++

常用命令

1
2
3
4
5
6
7
8
9
10
11
# 编译插桩
afl-gcc test.c -g -o test
# fuzz,指定输入和输出文件夹
afl-fuzz -i testcase/ -o output/ ./test
# 继续已停止的fuzz测试
afl-fuzz -i- -o output ./test
# 文件fuzz
# 有源码插桩
afl-fuzz -i in/ -o out/ ./readelf -a @@
# 无源码fuzz -Q 慢
afl-fuzz -i in/ -o out/ -Q ./readelf -a @@
1
# 分析crash结果