Example Usage
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'
See also
.NET-Deobfuscator
Open Source
Lists of .NET Deobfuscator and Unpacker (Open Source)…
GH-Offset-Dumper
Free
Scan signatures and netvars. Dumps header files, cheat tables and ReClass files.…
Angr
Open Source
Python binary analysis framework supporting both static and dynamic symbolic execution (concolic exe…
AAIdrive
Open Source
Implementations of some Android Auto features as unofficial IDrive apps…
pokeheartgold
Free
Decompilation of Pokemon HeartGold/SoulSilver…
hyper-reV
Open Source
memory introspection and reverse engineering hypervisor powered by leveraging Hyper-V…