Skip to content

Commit

Permalink
Merge pull request JonathanSalwan#5 from deepsadhi/master
Browse files Browse the repository at this point in the history
Add docker instructions
  • Loading branch information
JonathanSalwan authored Feb 18, 2019
2 parents c9ed264 + b71489f commit e58dd46
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 0 deletions.
44 changes: 44 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
FROM ubuntu:16.04
LABEL maintainer="David Manouchehri"

RUN apt-get update && apt-get dist-upgrade -y && \
apt-get install -y git cmake build-essential clang ca-certificates curl \
unzip libboost-dev python-dev python-pip && apt-get clean

# get and install the latest z3 relesae
RUN cd /tmp && \
curl -o z3.tgz -L https://github.com/Z3Prover/z3/archive/z3-4.5.0.tar.gz && \
tar zxf z3.tgz && cd z3-z3-4.5.0 && \
CC=clang CXX=clang++ python scripts/mk_make.py && cd build && make \
&& make install && cd /tmp && rm /tmp/z3.tgz && rm -rf /tmp/z3-z3-4.5.0

# Install capstone
RUN cd /tmp && \
curl -o cap.tgz -L https://github.com/aquynh/capstone/archive/3.0.4.tar.gz && \
tar xvf cap.tgz && cd capstone-3.0.4/ && ./make.sh install && cd /tmp && \
rm /tmp/cap.tgz && rm -rf /tmp/capstone-3.0.4


# Install pintool
RUN cd /opt && curl -o pin.tgz -L http://software.intel.com/sites/landingpage/pintool/downloads/pin-2.14-71313-gcc.4.4.7-linux.tar.gz && \
tar zxf pin.tgz && rm pin.tgz

# now install Triton
# uncomment below to pull form git
# RUN cd /opt/pin-2.14-71313-gcc.4.4.7-linux/source/tools/ && git clone https://github.com/JonathanSalwan/Triton.git && \
# cd Triton && mkdir build && cd build && cmake -G "Unix Makefiles" -DPINTOOL=on -DKERNEL4=on .. && \
# make install && cd .. && python setup.py install
RUN cd /opt/pin-2.14-71313-gcc.4.4.7-linux/source/tools/ && \
curl -o triton.zip -L https://github.com/JonathanSalwan/Triton/archive/2838b732d6398b33f590f4db5d045c26054486ae.zip && \
unzip triton.zip && rm triton.zip && cd Triton-2838b732d6398b33f590f4db5d045c26054486ae/ && mkdir build && cd build && \
cmake -G "Unix Makefiles" -DPINTOOL=on -DKERNEL4=on .. && make install && cd ..

# Install Tigress_protection dependencies
RUN pip install --upgrade pip==9.0.1
RUN pip install setuptools --upgrade
RUN pip install llvmlite
RUN pip install https://github.com/quarkslab/arybo/archive/master.zip
RUN pip install https://github.com/lief-project/packages/raw/lief-master-latest/pylief-0.9.0.dev.zip

ENTRYPOINT /bin/bash

15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,21 @@ $ ./solve-vm.py ./tigress-challenges/tigress-0-challenge-0
Then, symbolic expressions can be found [here](symbolic_expressions), LLVM representations can be found [here](llvm_expressions)
and recompiled binaries can be found [here](deobfuscated_binaries).

Using Docker:

<pre>
$ git clone [email protected]:JonathanSalwan/Tigress_protection.git
$ cd /path/to/Tigress_protection
$ docker build -t image_tigress_protection .
$ docker run -v /path/to/Tigress_protection:/root/Tigress_protection -ti --name=tigress_protection --ulimit='stack=-1:-1' image_tigress_protection
</pre>

Test inside Docker container
<pre>
# cd ~/Tigress_protection
# ./solve-vm.py tigress-challenges/tigress-0-challenge-0
</pre>

# Testing our simplified binaries

As we simplified and recompiled new binaries, we must provide the same behavior of the original binaries. So, to test our binary versions we use this [script](scripts/testing_equality.py).
Expand Down

0 comments on commit e58dd46

Please sign in to comment.