
कवरेज-निर्देशित फ़ज़र जो सिम्बोलिक निष्पादन के बिना पथ बाधाओं को हल करने के लिए टेंट ट्रैकिंग और स्केलर अनुकूलन का उपयोग करता है, जिससे भेद्यता खोज के लिए ब्रांच कवरेज में सुधार होता है।
Angora एक म्यूटेशन-आधारित कवरेज निर्देशित फ़ज़र है। Angora का मुख्य लक्ष्य प्रतीकात्मक निष्पादन के बिना पथ बाधाओं को हल करके ब्रांच कवरेज को बढ़ाना है।
Arxiv: Angora: Efficient Fuzzing by Principled Search, S&P 2018.
PREFIX=/path-to-install ./build/install_llvm.sh चलाएँ।शेल कॉन्फ़िगरेशन फ़ाइल (~/.bashrc, ~/.zshrc) में निम्नलिखित प्रविष्टियाँ जोड़ें।
export PATH=/path-to-clang/bin:$PATH
export LD_LIBRARY_PATH=/path-to-clang/lib:$LD_LIBRARY_PATH
बिल्ड स्क्रिप्ट अधिकांश निर्भरताओं को हल करेगी और रनटाइम वातावरण सेट करेगी।
./build/build.sh
AFL की तरह, सिस्टम कोर डंप अक्षम होने चाहिए।
echo core | sudo tee /proc/sys/kernel/core_pattern
परीक्षण करें कि Angora सफलतापूर्वक बिल्ड हुआ है।
cd /path-to-angora/tests
./test.sh mini
Angora प्रोग्राम को दो अलग-अलग बाइनरी में संकलित करता है, जिनमें से प्रत्येक में अपनी संबंधित इंस्ट्रूमेंटेशन होती है। autoconf प्रोग्रामों को उदाहरण के रूप में उपयोग करते हुए, आवश्यक चरण निम्नलिखित हैं।
# Use the instrumenting compilers
CC=/path/to/angora/bin/angora-clang \
CXX=/path/to/angora/bin/angora-clang++ \
LD=/path/to/angora/bin/angora-clang \
PREFIX=/path/to/target/directory \
./configure --disable-shared
# Build with taint tracking support
USE_TRACK=1 make -j
make install
# Save the compiled target binary into a new directory
# and rename it with .taint postfix, such as uniq.taint
# Build with light instrumentation support
make clean
USE_FAST=1 make -j
make install
# Save the compiled binary into the directory previously
# created and rename it with .fast postfix, such as uniq.fast
यदि आप इस तरीके से बिल्ड करने में विफल रहते हैं, तो लक्ष्य प्रोग्राम बनाना में वर्णित wllvm और gllvm आज़माएँ।
इसके अलावा, हमने DFSan के बजाय libdft64 के साथ टेंट विश्लेषण लागू किया है (टेंट ट्रैकिंग के लिए libdft64 का उपयोग करें)।
./angora_fuzzer -i input -o output -t path/to/taint/program -- path/to/fast/program [argv]
अधिक जानकारी के लिए, कृपया docs/ निर्देशिका के अंतर्गत दस्तावेज़ देखें।