Skip to content

Commit

Permalink
Squashed commit of the develop branch:
Browse files Browse the repository at this point in the history
  * add V850(E2S) architecture
  * add SH2-A architecture
  * add support for analysing i.MX6 HAB structures
  * merge AVR architecture
  * add system/structs classes
  * export 'crawl' out of amoco tree (libclang C-to-structs)
  * add eBPF instructions semantics
  * add support for (old)BPF instructions specs
  * add support for HEX/SREC binary format
  * add MemoryMap 'merge' method
  * add 'step_instruction' method in CoreExec (emulator)
  * add support for UFS structures
  * merge signals dispatcher for ui
  * improve setuptools support
  * remove tox and rely on travis only
  * improve armv7 instructions semantics and code helpers
  * improve armv7 instructions specs and formats
  * add spec tree debug level logging
  * fix decoder for archs with bigendian variable length instruction
  * improve decoder efficency with indicator of extended fetcher
  * add pygments support for sparc, msp430 instruction formatter
  * improve expressions widening
  * improve config module
  • Loading branch information
bdcht committed Jan 18, 2019
1 parent 684df77 commit 676755e
Show file tree
Hide file tree
Showing 107 changed files with 8,178 additions and 824 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,6 @@ dist/
*.egg-info
tests/priv
tests/.cache
.tox/
.pytest_cache/
tests/.pytest_cache/
.eggs/
27 changes: 11 additions & 16 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,19 @@
os:
- linux
language: python
python:
- '2.7'
- '3.5'
- 'pypy3.5'
branches:
only:
- release
addons:
apt:
packages:
- unzip
before_install:
- wget -q -O /tmp/z3.zip https://github.com/Z3Prover/bin/raw/master/releases/z3-4.4.0-x64-ubuntu-14.04.zip
- mkdir /tmp/z3
- unzip -q -d /tmp/z3 -j /tmp/z3.zip
- export PYTHONPATH=$PYTHONPATH:/tmp/z3
- pip install -r requirements.txt
- pip install z3-solver
- pip install sqlite3
- pip install SQLAlchemy
- pip install PySide2
- pip install Click
install:
- python setup.py install
- pip install tox
script:
- tox
env:
- TOXENV=py27
- TOXENV=py27-full
- TOXENV=py3
- python setup.py pytest
57 changes: 46 additions & 11 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,22 @@
Amoco
=====

|bdcht travis| (bdcht main repo) |LRGH travis| (LRGH fork)

.. |bdcht travis| image:: https://travis-ci.org/bdcht/amoco.svg?branch=release
:target: https://travis-ci.org/bdcht/amoco
.. |LRGH travis| image:: https://travis-ci.org/LRGH/amoco.svg?branch=release
:target: https://travis-ci.org/LRGH/amoco

.. image:: http://readthedocs.org/projects/amoco/badge/?version=latest
:target: http://amoco.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status

+-----------+-----------------------------------+
| Status: | Under Development |
+-----------+-----------------------------------+
| Location: | https://github.com/bdcht/amoco |
+-----------+-----------------------------------+
| Version: | 2.5 |
+-----------+-----------------------------------+
+-----------+--------------------------------------------------+
| Status: | Under Development |
+-----------+--------------------------------------------------+
| Location: | https://github.com/bdcht/amoco |
+-----------+--------------------------------------------------+
| Version: | 2.6 |
+-----------+--------------------------------------------------+
| Doc: | http://amoco.readthedocs.io/en/latest/index.html |
+-----------+--------------------------------------------------+

Description
===========
Expand Down Expand Up @@ -80,6 +78,40 @@ Please see `LICENSE`_.
Changelog
=========

- `v2.6.0`_

* add V850(E2S) architecture
* add SH2-A architecture
* add support for analysing i.MX6 HAB structures
* merge AVR architecture
* add system/structs classes
* export 'crawl' out of amoco tree (libclang C-to-structs)
* add eBPF instructions semantics
* add support for (old)BPF instructions specs
* add support for HEX/SREC binary format
* add MemoryMap 'merge' method
* add 'step_instruction' method in CoreExec (emulator)
* add support for UFS structures
* merge signals dispatcher for ui
* improve setuptools support
* remove tox and rely on travis only
* improve armv7 instructions semantics and code helpers
* improve armv7 instructions specs and formats
* add spec tree debug level logging
* fix decoder for archs with bigendian variable length instruction
* improve decoder efficency with indicator of extended fetcher
* add pygments support for sparc, msp430 instruction formatter
* improve expressions widening
* improve config module

- `v2.5.3`_

* complete fix of issue #77 (typical x64 madness)

- `v2.5.2`_

* partial fix of issue #77 (github) related to LEA instruction semantics on x64 arch.

- `v2.5.1`_

* add RISC-V architecture
Expand Down Expand Up @@ -244,6 +276,9 @@ Changelog
.. _ply: http://www.dabeaz.com/ply/
.. _sqlalchemy: http://www.sqlalchemy.org
.. _LICENSE: https://github.com/bdcht/amoco/blob/release/LICENSE
.. _v2.6.0: https://github.com/bdcht/amoco/releases/tag/v2.6.0
.. _v2.5.3: https://github.com/bdcht/amoco/releases/tag/v2.5.3
.. _v2.5.2: https://github.com/bdcht/amoco/releases/tag/v2.5.2
.. _v2.5.1: https://github.com/bdcht/amoco/releases/tag/v2.5.1
.. _v2.5.0: https://github.com/bdcht/amoco/releases/tag/v2.5.0
.. _v2.4.6: https://github.com/bdcht/amoco/releases/tag/v2.4.6
Expand Down
11 changes: 11 additions & 0 deletions TODO
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
* rework the mapper.conds to allow setitem calls to be afected by the (last?) condition
* add support for with statement (@contextmanager) for mapper to implement condition-enabled setitem on the mapper
* change config module to use traitlets to have configuration changes to take effect immediately
* create a dbg branch to add support for using a debugger to allow concretization of mappers via the cti attribute.
* improve the overall "helpers" interface in order to have a more dynamic behavior (retreiving symbols on-the-fly rather than through a call to a helper func)
* add support for structures helpers via the new structs module
* improve the overall "stubs" interface to store/fetch stubs from a database table.
* add support for system-dependent calling convention (ABI)
* [DONE] implement interface between mappers and the CoreExec.MemoryMap
* [DONE] implement an C-to-structs parser that can take a C header file and define an amoco-structure and amoco-stubs from it
* [DONE] `-> create a database table for known structures and stubs => extracted as 'crawl' tool based on libclang
2 changes: 1 addition & 1 deletion amoco/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# -*- coding: utf-8 -*-
from .config import conf
from .main import *

Loading

0 comments on commit 676755e

Please sign in to comment.