Skip to content

Commit 676755e

Browse files
committed
Squashed commit of the develop branch:
* 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
1 parent 684df77 commit 676755e

107 files changed

Lines changed: 8178 additions & 824 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,6 @@ dist/
77
*.egg-info
88
tests/priv
99
tests/.cache
10-
.tox/
10+
.pytest_cache/
11+
tests/.pytest_cache/
12+
.eggs/

.travis.yml

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,19 @@
1-
os:
2-
- linux
31
language: python
2+
python:
3+
- '2.7'
4+
- '3.5'
5+
- 'pypy3.5'
46
branches:
57
only:
68
- release
7-
addons:
8-
apt:
9-
packages:
10-
- unzip
119
before_install:
12-
- wget -q -O /tmp/z3.zip https://github.com/Z3Prover/bin/raw/master/releases/z3-4.4.0-x64-ubuntu-14.04.zip
13-
- mkdir /tmp/z3
14-
- unzip -q -d /tmp/z3 -j /tmp/z3.zip
15-
- export PYTHONPATH=$PYTHONPATH:/tmp/z3
10+
- pip install -r requirements.txt
11+
- pip install z3-solver
12+
- pip install sqlite3
13+
- pip install SQLAlchemy
14+
- pip install PySide2
15+
- pip install Click
1616
install:
1717
- python setup.py install
18-
- pip install tox
1918
script:
20-
- tox
21-
env:
22-
- TOXENV=py27
23-
- TOXENV=py27-full
24-
- TOXENV=py3
19+
- python setup.py pytest

README.rst

Lines changed: 46 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,22 @@
22
Amoco
33
=====
44

5-
|bdcht travis| (bdcht main repo) |LRGH travis| (LRGH fork)
6-
75
.. |bdcht travis| image:: https://travis-ci.org/bdcht/amoco.svg?branch=release
86
:target: https://travis-ci.org/bdcht/amoco
9-
.. |LRGH travis| image:: https://travis-ci.org/LRGH/amoco.svg?branch=release
10-
:target: https://travis-ci.org/LRGH/amoco
117

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

16-
+-----------+-----------------------------------+
17-
| Status: | Under Development |
18-
+-----------+-----------------------------------+
19-
| Location: | https://github.com/bdcht/amoco |
20-
+-----------+-----------------------------------+
21-
| Version: | 2.5 |
22-
+-----------+-----------------------------------+
12+
+-----------+--------------------------------------------------+
13+
| Status: | Under Development |
14+
+-----------+--------------------------------------------------+
15+
| Location: | https://github.com/bdcht/amoco |
16+
+-----------+--------------------------------------------------+
17+
| Version: | 2.6 |
18+
+-----------+--------------------------------------------------+
19+
| Doc: | http://amoco.readthedocs.io/en/latest/index.html |
20+
+-----------+--------------------------------------------------+
2321

2422
Description
2523
===========
@@ -80,6 +78,40 @@ Please see `LICENSE`_.
8078
Changelog
8179
=========
8280

81+
- `v2.6.0`_
82+
83+
* add V850(E2S) architecture
84+
* add SH2-A architecture
85+
* add support for analysing i.MX6 HAB structures
86+
* merge AVR architecture
87+
* add system/structs classes
88+
* export 'crawl' out of amoco tree (libclang C-to-structs)
89+
* add eBPF instructions semantics
90+
* add support for (old)BPF instructions specs
91+
* add support for HEX/SREC binary format
92+
* add MemoryMap 'merge' method
93+
* add 'step_instruction' method in CoreExec (emulator)
94+
* add support for UFS structures
95+
* merge signals dispatcher for ui
96+
* improve setuptools support
97+
* remove tox and rely on travis only
98+
* improve armv7 instructions semantics and code helpers
99+
* improve armv7 instructions specs and formats
100+
* add spec tree debug level logging
101+
* fix decoder for archs with bigendian variable length instruction
102+
* improve decoder efficency with indicator of extended fetcher
103+
* add pygments support for sparc, msp430 instruction formatter
104+
* improve expressions widening
105+
* improve config module
106+
107+
- `v2.5.3`_
108+
109+
* complete fix of issue #77 (typical x64 madness)
110+
111+
- `v2.5.2`_
112+
113+
* partial fix of issue #77 (github) related to LEA instruction semantics on x64 arch.
114+
83115
- `v2.5.1`_
84116

85117
* add RISC-V architecture
@@ -244,6 +276,9 @@ Changelog
244276
.. _ply: http://www.dabeaz.com/ply/
245277
.. _sqlalchemy: http://www.sqlalchemy.org
246278
.. _LICENSE: https://github.com/bdcht/amoco/blob/release/LICENSE
279+
.. _v2.6.0: https://github.com/bdcht/amoco/releases/tag/v2.6.0
280+
.. _v2.5.3: https://github.com/bdcht/amoco/releases/tag/v2.5.3
281+
.. _v2.5.2: https://github.com/bdcht/amoco/releases/tag/v2.5.2
247282
.. _v2.5.1: https://github.com/bdcht/amoco/releases/tag/v2.5.1
248283
.. _v2.5.0: https://github.com/bdcht/amoco/releases/tag/v2.5.0
249284
.. _v2.4.6: https://github.com/bdcht/amoco/releases/tag/v2.4.6

TODO

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
* rework the mapper.conds to allow setitem calls to be afected by the (last?) condition
2+
* add support for with statement (@contextmanager) for mapper to implement condition-enabled setitem on the mapper
3+
* change config module to use traitlets to have configuration changes to take effect immediately
4+
* create a dbg branch to add support for using a debugger to allow concretization of mappers via the cti attribute.
5+
* 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)
6+
* add support for structures helpers via the new structs module
7+
* improve the overall "stubs" interface to store/fetch stubs from a database table.
8+
* add support for system-dependent calling convention (ABI)
9+
* [DONE] implement interface between mappers and the CoreExec.MemoryMap
10+
* [DONE] implement an C-to-structs parser that can take a C header file and define an amoco-structure and amoco-stubs from it
11+
* [DONE] `-> create a database table for known structures and stubs => extracted as 'crawl' tool based on libclang

amoco/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# -*- coding: utf-8 -*-
2-
from .config import conf
32
from .main import *
3+

0 commit comments

Comments
 (0)