Skip to content

Latest commit

 

History

History

doc

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Documentation

Miasm documentation is organized around the following elements:

  • code comments, as:
>>> from miasm.core.locationdb import LocationDB
>>> help(LocationDB)

class LocationDB(builtins.object)
 |  LocationDB is a "database" of information associated to location.
 |  
 |  An entry in a LocationDB is uniquely identified with a LocKey.
 |  Additional information which can be associated with a LocKey are:
 |  - an offset (uniq per LocationDB)
 |  - several names (each are uniqs per LocationDB)
 |  
 |  As a schema:
 |  loc_key  1 <-> 0..1  offset
 |           1 <-> 0..n  name
 |  
 |  >>> loc_db = LocationDB()
 |  # Add a location with no additional information
 |  >>> loc_key1 = loc_db.add_location()
 |  # Add a location with an offset
 |  >>> loc_key2 = loc_db.add_location(offset=0x1234)
 |  # Add a location with several names
 |  >>> loc_key3 = loc_db.add_location(name="first_name")
 |  >>> loc_db.add_location_name(loc_key3, "second_name")
 |  # Associate an offset to an existing location
 |  >>> loc_db.set_location_offset(loc_key3, 0x5678)
 |  # Remove a name from an existing location
 |  >>> loc_db.remove_location_name(loc_key3, "second_name")
...
  • examples for the main features (see /example)
  • interactive tutorials (IPython Notebooks) on the following topics:
    • Emulation API: notebook
    • Miasm's IR bricks known as Expr: notebook
    • Lifting from assembly to IR: notebook
    • LocationDB usage, the database for locations: notebook
  • more complex examples through blog posts on miasm.re
  • cheatsheets:
    • Sandbox and associated emulation options: cheatsheet
    • Disassembler, lifter and associated structures: cheatsheet