libTriton  version 0.4 build 1351
Triton: Dynamic Binary Analysis Framework

Table of Contents

Description

Triton is a dynamic binary analysis (DBA) framework. It provides internal components like a Dynamic Symbolic Execution (DSE) engine, a Taint Engine, AST Representations of the x86 and the x86-64 instruction set semantics, SMT simplification passes, a SMT Solver Interface and, the last but not least, Python bindings. Based on these components, you are able to build program analysis tools, automate reverse engineering and perform software verification.



Presentations and Publications



Installation

To be able to compile Triton, you must install these libraries before:

lib name version
libboost >= 1.55
libpython 2.7.x
libz3 >= 4.4.1
libcapstone >= 3.0
Pin (optional) 71313

Linux and OSX Installation

Once libraries installed, you can use cmake and make to build the libTriton.

1 $ git clone https://github.com/JonathanSalwan/Triton.git
2 $ cd Triton
3 $ mkdir build
4 $ cd build
5 $ cmake ..
6 $ sudo make -j2 install

Windows Installation

Once libraries installed, you can use cmake to generate the .sln file of the libTriton.

1 > git clone https://github.com/JonathanSalwan/Triton.git
2 > cd Triton
3 > mkdir build
4 > cd build
5 > cmake -G "Visual Studio 14 2015 Win64" \
6  -DBOOST_ROOT="C:/Users/jonathan/Works/Tools/boost_1_61_0" \
7  -DPYTHON_INCLUDE_DIRS="C:/Python27/include" \
8  -DPYTHON_LIBRARIES="C:/Python27/libs/python27.lib" \
9  -DZ3_INCLUDE_DIRS="C:/Users/jonathan/Works/Tools/z3-4.4.1-x64-win/include" \
10  -DZ3_LIBRARIES="C:/Users/jonathan/Works/Tools/z3-4.4.1-x64-win/bin/libz3.lib" \
11  -DCAPSTONE_INCLUDE_DIRS="C:/Users/jonathan/Works/Tools/capstone-3.0.4-win64/include" \
12  -DCAPSTONE_LIBRARIES="C:/Users/jonathan/Works/Tools/capstone-3.0.4-win64/capstone.lib" ..

However, if you prefer to directly download precompiled libraries, check out our AppVeyor's artefacts.


Pintool for Linux users

This project is also shipped with a Pin Tracer and may be compiled with these following commands:

1 $ cd pin-2.14-71313-gcc.4.4.7-linux/source/tools/
2 $ git clone https://github.com/JonathanSalwan/Triton.git
3 $ cd Triton
4 $ mkdir build
5 $ cd build
6 $ cmake -DPINTOOL=on ..
7 $ make
8 $ cd ..
9 $ ./triton ./src/examples/pin/ir.py /usr/bin/id

It's not recommended to use the pintool on a kernel 4.x. The version 71313 of Pin doesn't support very well this branch (4.x). Anyway, if you feel lucky, you can compile the Triton pintool with the -DKERNEL4=on flag.

1 $ cmake -DPINTOOL=on -DKERNEL4=on ..
2 $ make

Note that only the version 71313 of Pin is supported.