Skip to content

Tags: dominikbayerl/maat

Tags

v0.6.9

Toggle v0.6.9's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Use MemMapManager to detect free space in memory instead of page perm…

…issions (trailofbits#149)

v0.6.8

Toggle v0.6.8's commit message
Bump patch version

v0.6.7

Toggle v0.6.7's commit message
Bump patch version

v0.6.6

Toggle v0.6.6's commit message
Bump patch version

v0.6.5

Toggle v0.6.5's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Various fixes for running a Smart Contract (trailofbits#135)

* Fix writing buffer to memory accross segments

* EVM: concretize concolic values for some of the operations

* Add simplification

v0.6.4

Toggle v0.6.4's commit message
Bump patch version

v0.6.3

Toggle v0.6.3's commit message
Bump version

v0.6.2

Toggle v0.6.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Fix processing IR stores with big addresses (trailofbits#131)

* Patch loader to support LIEF 0.12

* Support big memory addresses (mainly for EVM)

* Update lief to 0.12.1 (trailofbits#110)

* Update LIEF to 0.12.1

Latest release

* Update LIEF API usage

* Add version requirement to CMake when finding LIEF

* Fix LIEF link in python packaging Dockerfile

* Fix getting symbol name with LIEF 0.12

Co-authored-by: Boyan-MILANOV <boyan.milanov@trailofbits.com>

* Update packaging dockerfile

Co-authored-by: Eric Kilmer <eric.d.kilmer@gmail.com>

v0.6.1

Toggle v0.6.1's commit message
Revert version to 0.6.1

v0.6

Toggle v0.6's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Release next minor version

* Fix a typo related bug crashing when using virtual_fs (trailofbits#90)

* Map real files into the virtual filesystem (trailofbits#116)

* Add add_real_file() method to FileSystem

* Add FileSystem::add_real_file() to python bindings

* `EVM` architecture support (trailofbits#124)

* Add minimal EVM sleigh spec files

* Add basic classes for Ethereum environment emulation

* Minimal integration for executing Ethereum byte-code, test on ADD instruction

* Add EVM support for DIV, SDIV, MOD, SMOD

* Add more EVM instructions

* More EVM instructions

* Add more EVM instructions

* Add BYTE and POP EVM instructions

* Add MSTORE instruction - failing because of memory endianess

* Add big endian support to MemConcreteBuffer

* Add big endian support for MemSegment

* Add big endian support to MemEngine

* Add big endian support to SymbolicMemEngine

* Support big endian in VarContext and in EVM Memory

* Add more EVM instructions

* Remove sla files from git

* Support PUSH<n> EVM instructions

* More EVM instructions

* Fix call to MaatEngine::process_store()

* Add basic SSTORE and SLOAD support

* Add tests for solving symbolic EVM storage read/writes

* Add smart contract loading test, need to implement more instructions

* Add more EVM operators, add helper class for keccak hashes

* Support KECCAK operation

* Test deployment of simple contract

* More EVM support:

* test executing a transaction
* support STOP, REVERT, CALLDATALOAD, CALLDATACOPY
* minor improvements

* Test return status in EVM test

* WIP: EVM exploration test

* More EVM testing and improvements

* Add copy constructors for memory classes

* Add serialization for Ethereum environment

* Add bindings for Ethereum contracts

* Fix EVM python bindings

* Expose Value type in python module, support building Cst() with big ints

* Python bindings: give 'bin' parameter a default in load(), rename Transaction in EVMTransaction

* Add EVM tx result enum in bindings

* Allow to pass arbitrary data to event callbacks in both native and python APIs

* Support bigints in as_uint() and in VarContext

* Expose more things in python bindings

* Add UIDs to MaatEngine instances

* Allow CmdlineArg to hold a buffer of non-byte abstract values

* Various improvements:

* Support EXP instruction for concrete values
* Support passing constructor arguments when deploying a contract
* Handle bignums in logical AND simplification pattern

* Include <optional> in serializer.hpp

* Bindings: add getter for transaction recipient, expose Info class

* Add constructor to duplicate MaatEngine

* Make storage a shared_ptr in EVM::Contract

* Add helper to create a new EVM runtime from an existing MaatEngine

* Expose engine duplication and EVM runtime helpers in python bindings

* Add concat simplification pattern

* Fix Number signed comparisons implementation

* Simplify code in Number::slessequal_than

* Add more simplification patterns

* Expose Zext and Sext functions in bindings

* Fix rounding for signed division and modulo

* Add abstract counters for block number & timestamp

* Expose PathManager::add() in python bindings

* Add bindings helper functions for Ethereum block info

* EVM: support TIMESTAMP and NUMBER instructions

* Add iterators to EVM::Storage

* Expose EVM Storage in python bindings

* Support EVM CALL instruction

* Support CALLCODE and DELEGATECALL

* Use same class for Transaction and InternalTransaction

* Expose new transaction fields in bindings, rename EVM enums

* Support CALLER instruction

* Support specifying contract addr and deployer through env parameter

* Make transaction addresses 160 bits

* Add VarContext::contained_vars() method

* Force addresses to be 160-bits in EVM transactions

* Support CREATE and CREATE2

* Expose outgoing_transaction to bindings

* EVM loader: allow to pass init bytecode through args, throw exception if the init bytecode doesn't return properly

* Fix CREATE handler

* Expore transaction sender to bindings

* Expose EVM stack to bindings

* Support RETURNDATASIZE

* EVM loader: add option to not run init bytecode when loading the contract

* Expose result_from_last_call in bindings

* Support EXTCODESIZE

* Improve gas support

* Various fixes related to running message calls in EVM

* Don't force args to be 1-byte buffers in bindings

* Support ADDRESS instruction

* Make path manager a shared ptr, allow to share path manager when duplicating an engine

* Fix modulo translation to z3 expressions

* Expose more EVM stuff to bindings

* Fix EVM BYTE instruction

* Support large bitvectors in absorbing element simplification

* Fix unit test for EVM BYTE

* Return bytes in python bindings for VarContext.get_as_str()

* Support checking if the solver timed out

* Fix bug when adding singleton intervals in symbolic memory

* Specify size of variables in MemEngine::make_concolic()

* Improve the API for getting path constraints related to given values/constraints

* Fix checking check() result in z3 solver

* Don't serialize static UID cnt for VarContext

* Bindings: support big unsigned values in VarContext.set()

* Merge fixes for big endian memory support

Co-authored-by: novafacing <rowanbhart@gmail.com>