Skip to content

Commit

Permalink
Orchesctra: A Collaborative Fuzzer Framework
Browse files Browse the repository at this point in the history
  • Loading branch information
gtt1995 committed Sep 25, 2023
1 parent 7c70037 commit e953a6a
Show file tree
Hide file tree
Showing 26 changed files with 3,551 additions and 0 deletions.
79 changes: 79 additions & 0 deletions fuzzers/orchestra_116/builder.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
ARG parent_image
FROM $parent_image

#
# AFLplusplus
#

RUN apt-get update && \
apt-get install -y \
build-essential \
python3-dev \
python3-setuptools \
automake \
cmake \
git \
flex \
bison \
libglib2.0-dev \
libpixman-1-dev \
cargo \
libgtk-3-dev \
# for QEMU mode
ninja-build \
gcc-$(gcc --version|head -n1|sed 's/\..*//'|sed 's/.* //')-plugin-dev \
libstdc++-$(gcc --version|head -n1|sed 's/\..*//'|sed 's/.* //')-dev

RUN git clone -b master https://github.com/gtt1995/GMFuzzer.git /gmfuzzer
RUN git clone -b fuzzers https://github.com/gtt1995/GMFuzzer.git /fuzzers
#COPY AFLplusplus /aflplusplus

# Build without Python support as we don't need it.
# Set AFL_NO_X86 to skip flaky tests.
RUN cp -r /fuzzers/AFLplusplus /aflplusplus && \
cd /aflplusplus && \
unset CFLAGS CXXFLAGS && \
export CC=clang AFL_NO_X86=1 && \
PYTHON_INCLUDE=/ make && \
make install && \
cp utils/aflpp_driver/libAFLDriver.a / && \
make -C custom_mutators/autotokens && \
cp -f custom_mutators/autotokens/autotokens.so .


#COPY wingfuzz wingfuzz

RUN cp -r /fuzzers/wingfuzz /wingfuzz && \
cd /wingfuzz && \
./build.sh && cd instrument && ./build.sh && clang -c WeakSym.c && \
cp ../libFuzzer.a /libWingfuzz.a && cp WeakSym.o / && cp LoadCmpTracer.so /

#
# Honggfuzz
#

# honggfuzz requires libfd and libunwid.
RUN apt-get install -y \
libbfd-dev \
libunwind-dev \
libblocksruntime-dev \
liblzma-dev

#COPY honggfuzz /honggfuzz

# Set CFLAGS use honggfuzz's defaults except for -mnative which can build CPU
# dependent code that may not work on the machines we actually fuzz on.
# Create an empty object file which will become the FUZZER_LIB lib (since
# honggfuzz doesn't need this when hfuzz-clang(++) is used).
RUN cp -r /fuzzers/honggfuzz /honggfuzz && \
cd /honggfuzz && \
CFLAGS="-O3 -funroll-loops" make && \
touch empty_lib.c && \
cc -c -o empty_lib.o empty_lib.c


RUN cd /gmfuzzer &&\
(for f in *.cpp; do \
clang++ -stdlib=libc++ -fPIC -O2 -std=c++11 $f -c & \
done && wait) && \
ar r /usr/lib/libHCFUZZER.a *.o
Loading

0 comments on commit e953a6a

Please sign in to comment.