使用AFL++对qpdf进行模糊测试

本文详细介绍了如何安装并使用qpdf库,包括编译步骤、AFL-fuzz模糊测试指令,以及qpdf工具的各种PDF处理命令,如转换、压缩、加密等。
摘要由CSDN通过智能技术生成

安装编译qpdf
git clone https://github.com/qpdf/qpdf.git
cd qpdf
mkdir build
cd build     *//有时候会生成两层build*
export LLVM_CONFIG="llvm-config-11"
CC=$HOME/AFLplusplus/afl-clang-fast CXX=$HOME/AFLplusplus/afl-clang-fast++ cmake DCMAKE_CXX_FLAGS="--coverage -g -O0" -S .. -B . -DCMAKE_BUILD_TYPE=RelWithDebInfo 
cmake --build .
sudo cmake --install .

要生成堆栈信息则使用下列命令编译

CFLAGS="-g -O0" CXXFLAGS="-g -O0" cmake -S . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
cd build
cmake --build .
sudo cmake --install .

模糊测试命令:

timeout 86400 afl-fuzz  -t 100000 -i $HOME/in -o $HOME/out/ -s 123 -- $HOME/qpdf/build/qpdf/qpdf --empty --pages @@ 1-2 -- out/1.pdf

qpdf常用命令:

1.
gs -sDEVICE=pngalpha -r300 -o out/poc.png @@
2.压缩pdf文件
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=out/put.pdf @@
3.分割
gs -sDEVICE=pdfwrite -dSAFER -o out/put%d.pdf @@
4.提取第一页
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -sOutputFile=out/put.pdf -dFirstPage=1 -dLastPage=1 @@
5.PDF 文件转换为纯文本格式
gs -q -dNOPAUSE -sDEVICE=txtwrite -sOutputFile=out/output.txt @@ -c quit
6.合并文件
gs -sDEVICE=pdfwrite -o out/put.pdf @@ in/1.pdf
7.旋转90度
gs -sDEVICE=pdfwrite -o out/put.pdf -c "<</Orientation 2>> setpagedevice" -f @@
8.打印页面范围
gs -dBATCH -dNOPAUSE -sDEVICE=ljet4 -sOutputFile=out/output.prn -dFirstPage=2 -dLastPage=4 @@
9.将pdf文件转化为ps文件
gs -sDEVICE=ps2write -o out/output.ps @@
10.颜色转为灰色
gs -sDEVICE=pdfwrite -o out/put.pdf -sProcessColorModel=DeviceGray -sColorConversionStrategy=Gray -dOverrideICC -f @@
11.pdf转为tiff格式
gs -sDEVICE=tiffg4 -r300 -o out/put.tiff @@
12.加密码
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out/put.pdf -sUserPassword=123 -sOwnerPassword=123 @@
13.切割页面
gs -sDEVICE=pdfwrite -o out/output.pdf -c "[/CropBox [100 100 100 100] /PAGES pdfmark" -f @@
14.页面缩放
gs -sDEVICE=pdfwrite -dDEVICEWIDTHPOINTS=500 -dDEVICEHEIGHTPOINTS=500 -dFIXEDMEDIA -o out/put.pdf -f @@
15.添加水印
gs -sDEVICE=pdfwrite -o out/put.pdf -c "/Helvetica-Bold findfont 50 scalefont setfont 0.5 0.5 0.5 0 setcmykcolor 200 200 moveto (Watermark Text) show" -f @@
16.转为jpg图片
gs -dSAFER -dBATCH -dNOPAUSE -dPDFSTOPONERROR -sDEVICE=jpeg -r200 -dJPEGQ=99 -sOutputFile=out/put.jpg @@

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值