├── .gitignore ├── conf ├── locale.gen ├── conf.fish └── .tmux.conf ├── README.md └── Dockerfile /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /conf/locale.gen: -------------------------------------------------------------------------------- 1 | en_US.UTF-8 UTF-8 2 | -------------------------------------------------------------------------------- /conf/conf.fish: -------------------------------------------------------------------------------- 1 | alias ne="emacs -nw" 2 | alias reload="source ~/.config/fish/conf.d/conf.fish" -------------------------------------------------------------------------------- /conf/.tmux.conf: -------------------------------------------------------------------------------- 1 | bind-key C-h split-window -h 2 | bind-key C-v split-window -v 3 | 4 | bind-key C-j select-pane -L 5 | bind-key C-i select-pane -U 6 | bind-key C-l select-pane -R 7 | bind-key C-k select-pane -D 8 | 9 | set-option -g default-shell /usr/bin/fish 10 | 11 | # Design 12 | 13 | set -g status-bg black 14 | set -g status-fg white 15 | 16 | set -g pane-border-bg colour235 17 | set -g pane-border-fg colour238 18 | set -g pane-active-border-bg colour236 19 | set -g pane-active-border-fg colour51 20 | 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # reverse-me 2 | 3 | # Purpose 4 | 5 | This Dockerfile builds an Ubuntu-based Docker container, specially configured for reverse-engineering. 6 | 7 | **A quick and easy way to deploy a 32/64 bits UNIX environement platform on any box, including Linux, MacOS or Windows!** 8 | 9 | Tools installed: 10 | 11 | - gdb with peda layer 12 | - radare2 13 | - strace 14 | - valgrind 15 | - uncompyle6 16 | - fish shell 17 | - pwntools 18 | - tmux 19 | 20 | 21 | # Prebuild image 22 | 23 | You can pull the official image from the dockerhub registry using the following command: 24 | 25 | ``` 26 | docker pull nitr4x/reversing 27 | ``` 28 | 29 | # Build 30 | 31 | To build the container, just use this command: 32 | 33 | ```bash 34 | docker build -t reversing . 35 | ``` 36 | 37 | Docker will download the Ubuntu image and then execute the installation steps. 38 | 39 | > Be patient, the process can be quite long the first time. 40 | 41 | # Run 42 | 43 | Once the build process is over, get and enjoy your new reversing platform ! 44 | 45 | ```bash 46 | docker run -it --rm -v CHALLENGE_PATH:/tmp/data --name reversing reversing YOUR_SHELL 47 | ``` 48 | 49 | Explanations: 50 | 51 | - We mount a shared folder to simplify the data exchange between the container and the host 52 | - We delete the container when exited 53 | 54 | Of course, it is up to you to adjust it to your taste or need. 55 | 56 | 57 | Note: Don't forget to regularly pull this repository for updates. 58 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:latest 2 | 3 | MAINTAINER Nitrax 4 | 5 | RUN echo 'deb http://deb.debian.org/debian stretch main contrib non-free' > /etc/apt/sources.list 6 | RUN echo 'deb-src http://deb.debian.org/debian stretch main contrib non-free' >> /etc/apt/sources.list 7 | 8 | RUN echo 'deb http://deb.debian.org/debian stretch-updates main contrib non-free' >> /etc/apt/sources.list 9 | RUN echo 'deb-src http://deb.debian.org/debian stretch-updates main contrib non-free' >> /etc/apt/sources.list 10 | 11 | RUN echo 'deb http://security.debian.org/ stretch/updates main contrib non-free' >> /etc/apt/sources.list 12 | RUN echo 'deb-src http://security.debian.org/ stretch/updates main contrib non-free' >> /etc/apt/sources.list 13 | 14 | RUN apt update 15 | 16 | # Installing tools and dependancies 17 | RUN apt -y install libc-dev dpkg-dev g++ build-essential bsdmainutils unzip python man gdb git radare2 strace emacs gcc valgrind wget curl python-pip python3 libssl-dev libffi-dev qemu binfmt-support qemu-user-static htop tmux vim locales 18 | 19 | # 32bit support 20 | RUN apt -y install libc6-i386 lib32stdc++6 libc6-dev-i386 21 | 22 | USER root 23 | 24 | # Setting fish shell 25 | RUN echo 'deb http://download.opensuse.org/repositories/shells:/fish:/release:/2/Debian_8.0/ /' >> /etc/apt/sources.list.d/fish.list 26 | RUN wget -qO - http://download.opensuse.org/repositories/shells:fish:release:2/Debian_8.0/Release.key | apt-key add - 27 | RUN apt update 28 | RUN apt -y install fish 29 | ADD conf/conf.fish /root/.config/fish/conf.d/ 30 | 31 | WORKDIR /opt 32 | 33 | # Install oh-my-fish 34 | RUN git clone https://github.com/oh-my-fish/oh-my-fish omf 35 | RUN /opt/omf/bin/install --offline --noninteractive 36 | RUN echo "omf install godfather" | fish 37 | 38 | # Installing peda 39 | RUN git clone https://github.com/longld/peda.git peda 40 | RUN echo "source /opt/peda/peda.py" >> ~/.gdbinit 41 | 42 | # Install uncompyle6 43 | RUN git clone https://github.com/rocky/python-uncompyle6.git uncompyle 44 | WORKDIR /opt/uncompyle 45 | RUN pip install -e . 46 | RUN pip install -r requirements-dev.txt 47 | RUN python setup.py install 48 | 49 | # Install pwntools 50 | RUN pip install pwntools 51 | 52 | # Setting tmux 53 | ADD conf/locale.gen /etc/ 54 | ADD conf/.tmux.conf /root/ 55 | RUN locale-gen 56 | 57 | VOLUME /tmp/data 58 | 59 | WORKDIR /tmp/data --------------------------------------------------------------------------------