
تريتون هي مكتبة تحليل ثنائي ديناميكي. قم ببناء أدوات تحليل البرامج الخاصة بك، وأتمتة عمليات الهندسة العكسية، وأجرِ التحقق من البرامج، أو فقط قم بمحاكاة الكود.

Triton هي مكتبة تحليل ثنائي ديناميكي. توفر مكونات داخلية تسمح لك ببناء أدوات تحليل البرامج الخاصة بك، وأتمتة الهندسة العكسية، وإجراء التحقق من البرامج، أو ببساطة محاكاة الكود.
نظرًا لأن Triton هو نوع من المشاريع ذات الوقت الجزئي، من فضلك، لا تلومنا إذا لم يكن موثوقًا تمامًا. فتح المشكلات أو طلبات السحب دائمًا أفضل من التصيد =). ومع ذلك، يمكنك متابعة التطوير على تويتر @qb_triton.
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'
## التثبيت باستخدام pip
يمكن تثبيت Triton باستخدام `pip`:```console
pip install triton-library
يعتمد Triton على التبعيات التالية:```
### Linux وMacOS```console
$ git clone https://github.com/JonathanSalwan/Triton
$ cd Triton
$ mkdir build ; cd build
$ cmake ..
$ make -j3
$ sudo make install
بشكل افتراضي، لا يتم تجميع LLVM وBitwuzla. إذا كنت ترغب في الاستمتاع بالقوة الكاملة لـ Triton، فإن تجميع cmake هو:```console $ cmake -DLLVM_INTERFACE=ON -DCMAKE_PREFIX_PATH=$(llvm-config --prefix) -DBITWUZLA_INTERFACE=ON ..
#### ملاحظة MacOS M1:
إذا واجهت أخطاء تجميع مثل:```
Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
حاول تحديد PYTHON_EXECUTABLE و PYTHON_LIBRARIES و PYTHON_INCLUDE_DIRS لإصدار Python الخاص بك:```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/
..
يمكنك الحصول على هذه المعلومات من هذا المقتطف:```python
from sysconfig import get_paths
info = get_paths()
print(info)
إذا كان الإكمال التلقائي في Python لا يعمل، فاتبع هذه الخطوات:
/usr/lib/python3.13/).يجب أن يدعم بيئة التطوير المتكاملة (IDE) الخاصة بك تحليل ملفات .pyi.
يمكنك استخدام cmake لإنشاء ملف .sln الخاص بـ libTriton.```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" ..
يمكنك استخدام setup.py لإنشاء النسخة التصحيحية من triton.pyd على Windows.```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*)
ومع ذلك، إذا كنت تفضل تنزيل المكتبة المجمعة مسبقًا مباشرة، فتفضل بزيارة القطع الأثرية الخاصة بـ AppVeyor artefacts. لاحظ أنه إذا كنت تستخدم القطع الأثرية الخاصة بـ AppVeyor، فربما تحتاج إلى تثبيت حزم Visual C++ Redistributable الخاصة بـ Visual Studio 2012.