下载ghostpdl
https://git.ghostscript.com/?p=ghostpdl.git;a=snapshot;h=829265b677ee7c9e2d
3d90db1635c8c858e8cd7c;sf=tgz
若要下载最新版本:
https://git.ghostscript.com/?p=ghostpdl.git;a=summary
安装编译
tar -xvzf ghostpdl-17b42d0.tar.gz
cd ghostpdl-17b42d0
./autogen.sh
export LLVM_CONFIG="llvm-config-11"
CC=$HOME/AFLplusplus/afl-clang-fast CXX=$HOME/AFLplusplus/afl-clang-fast++ ./configure --prefix=$HOME/ghostpdl-17b42d0/build
make
sudo make install
模糊测试命令
timeout 86400 afl-fuzz -t 100000 -i in/ -o out/ -s 123 -- $HOME/ghostpdl-17b42d0/build/bin/gs -dSAFER -dBATCH -dNOPAUSE -dPDFSTOPONERROR -sDEVICE=jpeg -r200 -dJPEGQ=99 -sOutputFile=out/put.jpg @@
若要查看堆栈信息,则使用下列命令编译
CFLAGS="-g -O0" CXXFLAGS="-g -O0" ./configure --prefix=$HOME/ghostpdl-17b42d0/build
make
sudo make install
查看堆栈信息命令
gdb --args $HOME/ghostpdl-17b42d0/bin/gs -dSAFER -dBATCH -dNOPAUSE -dPDFSTOPONERROR -sDEVICE=jpeg -r200 -dJPEGQ=99 -sOutputFile=out/put.jpg in/1.pdf
run
in/1.pdf为要执行的文件路径,改为自己要执行的文件路径即可