Releases: JonathanSalwan/Triton
Version 0.9
We are glad to announce the release of Triton v0.9 which brings several features:
- Better dealing with path constraints
- Lifting To SMT file
- Lifting to Python file
- Lifting to LLVM file
- Lifting to LLVM IR and back
- Python from 3.6 to 3.9 comparability
- Add new AST optimizations
- Add new instructions
- Add FPU specification
- Add support for Thumb IT instructions
- Add the Bitwuzla solver interface
- Add a synthesis expression engine
- Fix semantics
- Fix optimizations
- And so many more
Version 0.8.1
Version 0.8
Version 0.7
This version is a big step forward for the project. Below some improvements which have been made:
- AArch64 support (more than 100 instructions supported)
- Android support
- Python 3.6 support
- Fix some of bugs
- Capstone 3.0.x and 4.0.x support
- Fix some memory leaks
- Shortcut access to a Register over the C++ API (#767)
- Allow users to set alias on a symbolic variable (#763)
- Provide a visitor feature in order to looking specific nodes in a tree (#711)
iff
SMT node support (#571)
All updates can be found here.
Version 0.6
Version 0.6
provides new features, fixes and big improvements in term of design compared to 0.5
. The full list and details of these changes can be found in the the Github issues interface. Version 0.6
has been pushed in order to prepare a new version (0.7
) which will focus on AArch64 support already in development.
Version 0.5
Nothing awesome in this release, mainly focused on bug fixes. The full detail of upgrades can be found here. The version 0.5
has been pushed due to the new philosophy and design of the version 0.6
. This version will be maintained few months over the dev-v0.5
branch. However, we recommend people to directly switch into the dev-v0.6
.
- Lot of bugs fixed
- Some API renamed
- 11 new instruction semantics
- A new CMake design
Version 0.4
This version has been pushed due to the new design philosophy of the next one (v0.5). However, this version provides 95 new features and bug fixes.
Version 0.3
This version is a big step forward for the project. The version v0.3 allows you to plug any kind of tracers (e.g: Valgrind, Qemu, Pin, DynamoRIO, ...), allows you to simplify your symbolic expressions, to perform symbolic optimizations, to perform online or offline analysis, the libTriton is now available on OSX, Linux and Windows (without pintool), there is a new C++ and Python API and many more... Below, the short list of the main features added.
- Externalize analysis from pintool (see #226)
- libTriton available on OSX, Linux and Windows (without the pintool)
- Tracer independent (see doc)
- SMT Simplification Passes (see doc)
- New semantics format (see source)
- Offline / Online analysis
- Symbolic Optimizations (see doc)
- New C++ and Python API
- Switch to Capstone for a multi-arch design
- Semantics bug fix
- Engines bug fix
Version 0.2
For this version, we have pushed 272 commits and closed 84 issues since the v0.1. Several efforts have been done around the execution speed and the RAM management. Then, a big step forward has been done on the semantics manipulation. To be short, below is the list of the main features added.
- 32-bits support
- Semantics representation as AST
- Eval SMT expressions
- Generate several models
- Create and modify your own AST
- Improve engines
- Speed up execution
- Blacklist and whitelist of jited images
- Less RAM consumption
- Add semantics
- Bugs fixed
- Code coverage tool
Version 0.1
Basically, this first version contains:
- A dynamic symbolic execution engine
- A translation of instructions into SMT-LIB v2.0
- A solver interface
- A snapshot engine
- A taint engine
- Python bindings on Triton and Pin's features
- 114 supported semantics
- A memory tracer tool
- A database generation tool
- A format string bug analysis tool
- A use-after-free bug analysis tool
- A documentation