FROM ubuntu:latest
RUN DEBIAN_FRONTEND=noninteractive apt update -y
&& DEBIAN_FRONTEND=noninteractive apt upgrade -y
&& DEBIAN_FRONTEND=noninteractive apt install -y
--no-install-suggests
autoconf
automake
bison
build-essential
ca-certificates
clang
llvm-dev
g++
gcc
gdb
git
libtool
libtool-bin
libglib2.0-dev
make
nasm
wget
tmux
&& cd /usr/local/src
&& wget 'http://lcamtuf.coredump.cx/afl/releases/afl-latest.tgz' -O- | tar zxvf -
&& cd afl-*
&& make -j "$(nproc)"
&& cd llvm_mode
&& make -j "$(nproc)"
&& cd ../libdislocator
&& make -j "$(nproc)"
&& cd ../libtokencap
&& make -j "$(nproc)"
&& cd ..
&& make install
&& cd /
&& rm -rf /usr/local/src/afl-*
RUN echo 'set -g mouse on' > /root/.tmux.conf
WORKDIR /data
RUN mkdir -p afl RUN mkdir -p afl/in RUN mkdir -p afl/out
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y openssl curl libreadline6 libreadline6-dev curl zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison pkg-config vim
RUN mkdir -p /usr/local/etc
&& {
echo 'install: --no-document';
echo 'update: --no-document';
} >> /usr/local/etc/gemrc
ENV RUBY_MAJOR 2.4 ENV RUBY_VERSION 2.4.2 ENV RUBY_DOWNLOAD_SHA256 748a8980d30141bd1a4124e11745bb105b436fb1890826e0d2b9ea31af27f735 ENV RUBYGEMS_VERSION 2.6.13
RUN set -ex
&& buildDeps='
bison
dpkg-dev
'
&& apt-get install -y --no-install-recommends $buildDeps
&& wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz"
&& echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.xz" | sha256sum -c -
&& mkdir -p /usr/src/ruby
&& tar -xJf ruby.tar.xz -C /usr/src/ruby --strip-components=1
&& rm ruby.tar.xz
&& cd /usr/src/ruby
&& mv ruby.c ruby.c.bkp
&& wget -O ruby.c https://gist.githubusercontent.com/clod81/531eda153b06eb3f75510e42a86f3166/raw/04e623611e74b689cd3ef3d5c465ebf4ec53a7ad/ruby.c
ENV CC afl-clang-fast ENV CXX afl-clang-fast++ ENV CFLAGS -ggdb ENV AFL_EXIT_WHEN_DONE 1 ENV AFL_HARDEN 1
RUN cd /usr/src/ruby
autoconf
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"
&& ./configure --build="$gnuArch" --disable-install-doc --enable-shared
&& make -j "$(nproc)"
&& make install
&& apt-get purge -y --auto-remove $buildDeps
&& apt-get clean -y
&& rm -rf /var/lib/apt/lists/*
&& rm -rf /usr/src/ruby
&& cd /
&& gem update --system "$RUBYGEMS_VERSION"
ENV BUNDLER_VERSION 1.15.4
RUN gem install bundler --version "$BUNDLER_VERSION"
ENV GEM_HOME /usr/local/bundle
ENV BUNDLE_PATH="$GEM_HOME"
BUNDLE_BIN="$GEM_HOME/bin"
BUNDLE_SILENCE_ROOT_WARNING=1
BUNDLE_APP_CONFIG="$GEM_HOME"
ENV PATH $BUNDLE_BIN:$PATH
RUN mkdir -p "$GEM_HOME" "$BUNDLE_BIN"
&& chmod 777 "$GEM_HOME" "$BUNDLE_BIN"
CMD ["bash"]
Content type
Image
Digest
Size
360.5 MB
Last updated
about 9 years ago
docker pull clod81/afl-ruby-2.4.2-persist-in-ruby.c