# Triton

> C++ library with Python bindings for dynamic binary analysis of x86, x86-64, ARM32, AArch64 and RISC-V 32/64 code. Callers process instructions one at a time, optionally with concrete register and memory values; Triton builds symbolic expressions from each instruction's semantics, tracks taint and solves path constraints through Z3 or Bitwuzla. It also synthesizes and simplifies expressions and lifts them to LLVM IR or Z3 and back, for building analysis tools, automating reverse engineering, software verification or emulating code.

- Type: Tool
- Targets: Binary
- Category: Binary analysis libraries
- Relationship: Foundation tool
- Sources reviewed: 2026-10-19
- Added to the catalog: 2026-10-19
- Original resource: <https://github.com/JonathanSalwan/Triton>
- Primary source: <https://github.com/JonathanSalwan/Triton/blob/bc84cf745e99768e07d51dcd734eba35c59f1b3e/README.md>
- Catalog page: <https://awesomerea.org/resources/triton/>
- Record JSON: <https://awesomerea.org/resources/triton/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/triton/index.md)

## Requirements & limits

- The README calls Triton a part-time project that may not be fully reliable. The newest GitHub release is v0.9 from 2022-02-09, with Windows builds only; PyPI's triton-library 1.0.0rc4, first uploaded 2024-05-22 with wheels added through 2026-02-23, provides CPython 3.8–3.14 wheels for x86_64 Linux (manylinux 2.31/2.34), macOS 12 and Windows. The reviewed master commit declares version 1.0, and the dev-v1.0 branch was 22 commits ahead.
- Source builds use CMake 3.20+ and need Capstone 5+. Z3 4.6+ is the default solver; Bitwuzla 0.4+, LLVM 12+ for lifting, Boost 1.68+ and libpython 3.6+ for the Python bindings are optional, and LLVM and Bitwuzla are off by default. The README also covers Windows builds and a vcpkg port maintained outside the project.
- The README example processes raw instruction bytes against caller-set registers; some bundled examples load executables with LIEF and hook libc functions themselves, and the examples include CTF write-ups with their challenge binaries. CTest runs Python unit tests and per-architecture scripts that compare Triton's semantics with the Unicorn emulator; the x86 script notes that Unicorn 2.1.1 lacks some tested instructions.
- Apache-2.0; Capstone, Z3, Bitwuzla, LLVM and Boost keep their own licenses. Symbolic results describe only the executed instructions and modeled state.

## Primary sources

1. <https://github.com/JonathanSalwan/Triton/blob/bc84cf745e99768e07d51dcd734eba35c59f1b3e/README.md>
2. <https://github.com/JonathanSalwan/Triton/blob/bc84cf745e99768e07d51dcd734eba35c59f1b3e/README.md#L102-L130>
3. <https://github.com/JonathanSalwan/Triton/blob/bc84cf745e99768e07d51dcd734eba35c59f1b3e/CMakeLists.txt#L9-L38>
4. <https://github.com/JonathanSalwan/Triton/blob/bc84cf745e99768e07d51dcd734eba35c59f1b3e/src/testers/CMakeLists.txt>
5. <https://github.com/JonathanSalwan/Triton/blob/bc84cf745e99768e07d51dcd734eba35c59f1b3e/src/testers/x86/unicorn_test_x86.py#L19-L21>
6. <https://github.com/JonathanSalwan/Triton/tree/bc84cf745e99768e07d51dcd734eba35c59f1b3e/src/examples/python>
7. <https://github.com/JonathanSalwan/Triton/blob/bc84cf745e99768e07d51dcd734eba35c59f1b3e/LICENSE.txt>
8. <https://github.com/JonathanSalwan/Triton/releases/tag/v0.9>
9. <https://pypi.org/project/triton-library/1.0.0rc4/>

## More in Native binaries

- [PyLingual](https://awesomerea.org/resources/pylingual/index.md) · Tool
- [Miasm](https://awesomerea.org/resources/miasm/index.md) · Tool
- [HyperDbg](https://awesomerea.org/resources/hyperdbg/index.md) · Tool
- [Kuna](https://awesomerea.org/resources/kuna/index.md) · Tool
- [Binary Ninja API](https://awesomerea.org/resources/binary-ninja-api/index.md) · Tool
- [capa](https://awesomerea.org/resources/capa/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
