安装编译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 @@