1、安装AFL
git clone https://github.com/google/AFL.git
mv AFL afl-2.52b
cd afl-2.52b
make
sudo make install
2、安装QEMU
安装依赖项
wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
make install
sudo apt-get install libtool
sudo apt-get install libtool-bin
sudo apt-get install libglib2.0-dev
sudo apt-get install zlib1g
sudo apt-get install automake
sudo apt-get install bison
sudo apt-get install python
3、构建qemu
进入qemu_mode文件夹,运行 ./build_qemu_support.sh
cd ..
cd qemu_mode
./build_qemu_support.sh
4、测试afl
#下载 binutils 程序
wget https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/binutils/2.25-5ubuntu7/binutils_2.25.orig.tar.gz
tar zxvf binutils_2.25.orig.tar.gz
rm -rf binutils_2.25.orig.tar.gz
cd binutils-2.25/
#指定编译程序为AFL的编译器,并进行编译
export CC=afl-gcc (设置linux环境变量,env查看)
export CXX=afl-g++
./configure
make
#开始对readelf程序进行测试
mkdir afl_in afl_out
cp /bin/ps afl_in/
afl-fuzz -i afl_in -o afl_out ./binutils/readelf -a @@
程序运行图如下所示:
5、测试无源码的afl
echo core >/proc/sys/kernel/core_pattern
export AFL_PATH=/home/fuzzers/afl-2.52b
afl-fuzz -i i -o o -Q ./demo1
程序运行图如下所示: