
Triton ist eine dynamische Binäranalyse-Bibliothek. Erstellen Sie Ihre eigenen Programmanalysetools, automatisieren Sie Ihr Reverse Engineering, führen Sie Softwareverifikation durch oder emulieren Sie einfach Code.

Triton ist eine dynamische Binäranalyse-Bibliothek. Sie bietet interne Komponenten, mit denen Sie Ihre Programmanalysewerkzeuge erstellen, Reverse Engineering automatisieren, Softwareverifikation durchführen oder einfach Code emulieren können.
Da Triton eine Art Teilzeitprojekt ist, macht uns bitte keine Vorwürfe, wenn es nicht vollständig zuverlässig ist. Issues oder Pull Requests zu eröffnen ist immer besser als Trolling =). Sie können die Entwicklung jedoch auf Twitter unter @qb_triton verfolgen.
from triton import *
Create the Triton context with a defined architecture
ctx = TritonContext(ARCH.X86_64)
Define concrete values (optional)
ctx.setConcreteRegisterValue(ctx.registers.rip, 0x40000)
Symbolize data (optional)
ctx.symbolizeRegister(ctx.registers.rax, 'my_rax')
Execute instructions
ctx.processing(Instruction(b"\x48\x35\x34\x12\x00\x00")) # xor rax, 0x1234 ctx.processing(Instruction(b"\x48\x89\xc1")) # mov rcx, rax
Get the symbolic expression
rcx_expr = ctx.getSymbolicRegister(ctx.registers.rcx) print(rcx_expr) (define-fun ref!8 () (_ BitVec 64) ref!1) ; MOV operation - 0x40006: mov rcx, rax
Solve constraint
ctx.getModel(rcx_expr.getAst() == 0xdead) {0: my_rax:64 = 0xcc99}
0xcc99 XOR 0x1234 is indeed equal to 0xdead
hex(0xcc99 ^ 0x1234) '0xdead'
## Installieren mit pip
Triton kann mit `pip` installiert werden:```console
pip install triton-library
Triton benötigt die folgenden Abhängigkeiten:```
### Linux und MacOS```console
$ git clone https://github.com/JonathanSalwan/Triton
$ cd Triton
$ mkdir build ; cd build
$ cmake ..
$ make -j3
$ sudo make install
Standardmäßig werden LLVM und Bitwuzla nicht kompiliert. Wenn Sie die volle Leistungsfähigkeit von Triton nutzen möchten, lautet der cmake-Befehl:```console $ cmake -DLLVM_INTERFACE=ON -DCMAKE_PREFIX_PATH=$(llvm-config --prefix) -DBITWUZLA_INTERFACE=ON ..
#### MacOS M1 Hinweis:
Falls Sie Kompilierungsfehler wie:```
Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
Versuchen Sie, PYTHON_EXECUTABLE, PYTHON_LIBRARIES und PYTHON_INCLUDE_DIRS für Ihre spezifische Python-Version anzugeben:```console
cmake -DCMAKE_INSTALL_PREFIX=/opt/homebrew/
-DPYTHON_EXECUTABLE=/opt/homebrew/bin/python3
-DPYTHON_LIBRARIES=/opt/homebrew/Cellar/[email protected]/3.10.8/Frameworks/Python.framework/Versions/3.10/lib/libpython3.10.dylib
-DPYTHON_INCLUDE_DIRS=/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/include/python3.10/
..
Diese Informationen können Sie aus diesem Ausschnitt entnehmen:```python
from sysconfig import get_paths
info = get_paths()
print(info)
Falls die Python-Autovervollständigung nicht funktioniert, führen Sie folgende Schritte aus:
/usr/lib/python3.13/).Ihre IDE muss das Parsen von .pyi-Dateien unterstützen.
Sie können cmake verwenden, um die .sln-Datei von libTriton zu generieren.```console
git clone https://github.com/JonathanSalwan/Triton.git cd Triton mkdir build cd build cmake -G "Visual Studio 14 2015 Win64"
-DBOOST_ROOT="C:/Users/jonathan/Works/Tools/boost_1_61_0"
-DPYTHON_INCLUDE_DIRS="C:/Python36/include"
-DPYTHON_LIBRARIES="C:/Python36/libs/python36.lib"
-DZ3_INCLUDE_DIRS="C:/Users/jonathan/Works/Tools/z3-4.6.0-x64-win/include"
-DZ3_LIBRARIES="C:/Users/jonathan/Works/Tools/z3-4.6.0-x64-win/bin/libz3.lib"
-DCAPSTONE_INCLUDE_DIRS="C:/Users/jonathan/Works/Tools/capstone-5.0.1-win64/include"
-DCAPSTONE_LIBRARIES="C:/Users/jonathan/Works/Tools/capstone-5.0.1-win64/capstone.lib" ..
Sie können setup.py verwenden, um die Debug-Version von triton.pyd unter Windows zu erstellen.```console
> git clone https://github.com/JonathanSalwan/Triton.git
> cd Triton
> $env:COMPILER_DIR="C:/deps/llvm/llvm2116r/bin"
> $env:CMAKE_PREFIX_PATH="C:/deps/llvm/llvm-project-21.1.6.src/install/lib/cmake/llvm;C:/code/cxx-common-cmake/build/install"
> python_d -m build --wheel
> python_d -m pip install (Get-ChildItem .\dist\triton_library*)