Sign inSign up

clod81/afl-ruby2.4.2

By clod81

•Updated about 9 years ago

Image
0

218

clod81/afl-ruby2.4.2 repository overview

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

⁠RUBY

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

⁠some of ruby's build scripts are written in ruby

⁠we purge system ruby later to make sure our final image uses what we just built

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 main.c main.c.bkp
&& wget -O main.c https://gist.githubusercontent.com/clod81/6f1b9f3e23ac2d8200fd2139503ce5d9/raw/b690ab4773e334a6d04028cadf497f85f2a56c63/main.c⁠

ENV CC afl-clang-fast ENV CXX afl-clang-fast++ ENV CFLAGS -ggdb ENV AFL_EXIT_WHEN_DONE 1 ENV AFL_HARDEN 1

⁠ENV AFL_USE_ASAN 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"

⁠Define default command.

CMD ["bash"]

Tag summary

Content type

Image

Digest

Size

345.7 MB

Last updated

about 9 years ago

docker pull clod81/afl-ruby2.4.2