forked from JonathanSalwan/Tigress_protection
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of github.com:JonathanSalwan/Tigress_protection
- Loading branch information
Showing
2 changed files
with
59 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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). | ||
|