InstallationΒΆ

Amoco is a pure python package which depends on the following packages:

  • grandalf used for building, walking and rendering Control Flow Graphs
  • crysp used by the generic intruction decoder (arch.core)
  • traitlets used for managing the configuration
  • pyparsing used for parsing instruction specifications

Recommended optional packages are:

  • z3 used to simplify expressions and solve constraints
  • pygments used for pretty printing of assembly code and expressions
  • ccrawl used to define and import data structures

Some optional features related to UI and persistence require:

  • click used to define amoco command-line app
  • blessed used for terminal based debugger frontend
  • tqdm used for terminal based debugger frontend
  • ply for parsing GNU as files
  • sqlalchemy for persistence of amoco objects in a database
  • pyside2 for the Qt-based graphical user interface

Installation is straightforward for most packages using pip.

The z3 SMT solver is highly recommended (do pip install z3-solver). The pygments package is also recommended for pretty printing, and sqlalchemy is needed if you want to store analysis results and objects.

If you want to use the graphical interface you will need all packages.