
Triton एक गतिशील बाइनरी विश्लेषण लाइब्रेरी है। अपने स्वयं के प्रोग्राम विश्लेषण उपकरण बनाएं, अपने रिवर्स इंजीनियरिंग को स्वचालित करें, सॉफ्टवेयर सत्यापन करें या केवल कोड का अनुकरण करें।

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 Note:
यदि आपको इस प्रकार के कंपाइलेशन त्रुटियाँ मिलती हैं:```
Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
अपने विशिष्ट Python संस्करण के लिए PYTHON_EXECUTABLE, PYTHON_LIBRARIES और PYTHON_INCLUDE_DIRS निर्दिष्ट करने का प्रयास करें:```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)
यदि पायथन ऑटोकम्प्लीशन काम नहीं कर रहा है, तो इन चरणों का पालन करें:
/usr/lib/python3.13/)।आपके IDE को .pyi फ़ाइलों को पार्स करने का समर्थन करना चाहिए।
आप libTriton की .sln फ़ाइल उत्पन्न करने के लिए cmake का उपयोग कर सकते हैं।```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 का उपयोग करके Windows पर triton.pyd का डीबग संस्करण उत्पन्न कर सकते हैं।```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 के कलाकृतियाँ देखें। ध्यान दें कि यदि आप AppVeyor की कलाकृतियों का उपयोग करते हैं, तो आपको संभवतः Visual C++ Redistributable पैकेज इंस्टॉल करने होंगे Visual Studio 2012 के लिए।