mkdir$HOME/fuzz_main cd$HOME/fuzz_main wget https://github.com/libexif/libexif/archive/refs/tags/libexif-0_6_14-release.tar.gz tar -xzvf libexif-0_6_14-release.tar.gz
构建并安装:
1 2 3 4 5 6
cd libexif-libexif-0_6_14-release/ sudo apt-get install autopoint libtool gettext libpopt-dev autoreconf -fvi ./configure --enable-shared=no --prefix="$HOME/fuzz_main/install/" make make install
选择接口应用
由于libexif是一个库,我们可以使用作者的另外一个项目来利用这个库。
1 2 3
cd$HOME/fuzz_main wget https://github.com/libexif/exif/archive/refs/tags/exif-0_6_15-release.tar.gz tar -xzvf exif-0_6_15-release.tar.gz
构建该应用:
1 2 3 4 5
cd exif-exif-0_6_15-release/ autoreconf -fvi ./configure --enable-shared=no --prefix="$HOME/fuzz_main/install/" PKG_CONFIG_PATH=$HOME/fuzz_main/install/lib/pkgconfig make make install
╰─ $HOME/fuzz_main/install/bin/exif Usage: exif [OPTION...] file -v, --version Display software version -i, --ids Show IDs instead of tag names -t, --tag=tag Select tag --ifd=IFD Select IFD -l, --list-tags List all EXIF tags -|, --show-mnote Show contents of tag MakerNote --remove Remove tag or ifd -s, --show-description Show description of tag -e, --extract-thumbnail Extract thumbnail -r, --remove-thumbnail Remove thumbnail -n, --insert-thumbnail=FILE Insert FILE as thumbnail -o, --output=FILE Write data to FILE --set-value=STRING Value -m, --machine-readable Output in a machine-readable (tab delimited) format -x, --xml-output Output in a XML format -d, --debug Show debugging messages
Help options: -?, --help Show this help message --usage Display brief usage message
╰─ $HOME/fuzz_main/install/bin/exif $HOME/fuzz_main/exif-samples-master/jpg/Canon_40D.jpg EXIF tags in'/home/zlsf/fuzz_main/exif-samples-master/jpg/Canon_40D.jpg' ('Intel' byte order): --------------------+---------------------------------------------------------- Tag |Value --------------------+---------------------------------------------------------- Manufacturer |Canon Model |Canon EOS 40D Orientation |top - left x-Resolution |72.00 y-Resolution |72.00 Resolution Unit |Inch Software |GIMP 2.4.5 Date and Time |2008:07:31 10:38:11 YCbCr Positioning |co-sited Compression |JPEG compression x-Resolution |72.00 y-Resolution |72.00 Resolution Unit |Inch Exposure Time |1/160 sec. FNumber |f/7.1 ExposureProgram |Manual ISO Speed Ratings |100 Exif Version |Exif Version 2.21 Date and Time (origi|2008:05:30 15:56:01 Date and Time (digit|2008:05:30 15:56:01 ComponentsConfigurat|Y Cb Cr - Shutter speed |7.38 EV (APEX: 12, 1/165 sec.) Aperture |5.62 EV (f/7.0) Exposure Bias |0.00 EV Metering Mode |Pattern Flash |Flash fired, compulsory flash mode. Focal Length |135.0 mm User Comment | SubsecTime |00 SubSecTimeOriginal |00 SubSecTimeDigitized |00 FlashPixVersion |FlashPix Version 1.0 Color Space |sRGB PixelXDimension |100 PixelYDimension |68 Focal Plane x-Resolu|4438.36 Focal Plane y-Resolu|4445.97 Focal Plane Resoluti|Inch Custom Rendered |Normal process Exposure Mode |Manual exposure White Balance |Auto white balance Scene Capture Type |Standard GPS tag version |0x02, 0x02, 0x00, 0x00 InteroperabilityInde|R98 InteroperabilityVers|0100 --------------------+---------------------------------------------------------- EXIF data contains a thumbnail (1378 bytes).
使用afl-clang-lto编译
1 2 3 4 5 6 7
rm -fr $HOME/fuzz_main/install cd$HOME/fuzz_main/libexif-libexif-0_6_14-release/ make clean export LLVM_CONFIG="llvm-config-11" CC=afl-clang-lto ./configure --enable-shared=no --prefix="$HOME/fuzz_main/install/" make make install
1 2 3 4 5 6
cd$HOME/fuzz_main/exif-exif-0_6_15-release make clean export LLVM_CONFIG="llvm-config-11" CC=afl-clang-lto ./configure --enable-shared=no --prefix="$HOME/fuzz_main/install/" PKG_CONFIG_PATH=$HOME/fuzz_main/install/lib/pkgconfig make make install
+++ Testing aborted by user +++ [*] Writing ./out/default/fastresume.bin ... [+] fastresume.bin successfully written with 114962 bytes. [+] We're done here. Have a nice day!