Skip to content

TheLibStdEresi

Rafał Leśniak edited this page Apr 23, 2016 · 2 revisions

The ERESI standard library : libstderesi

The ERESI standard library is a high level component grouping primitives based on top of lower-level libraries of the ERESI project. These primitives are bound to commands of the ERESI language. The main features of the ERESI standard library are :

  • Facilities for loading and unloading binary files from the ERESI language.
  • A set of 36 ELF-specific commands for using capabilities that binds ELF instrumentation features into the ERESI language.
  • Full resolved disassembling of sections, functions, or basic blocks, using features from the ERESI disassembly engine libasm.
  • A set of commands for static binary analysis by program transformation.
  • Generation of graphviz input files from Control Flow Graphs (CFG) and Call Graphs of analyzed binary programs, using the analysis API of the ERESI component libmjollnir.
  • A set of generic commands to represent sets of functions to be traced or inspected. Those traces data structures are especially used by the Embedded ELF tracer etrace.
  • A generic API of ERESI commands to manage prompt, workspaces, and terminal colors.

Latest news for libstderesi

  • November 30 2007 - Libstderesi is unmerged from librevm

Portability of libstderesi

This component acts as an interface between the ERESI language interpreter and the lower-level components (where the ground analysis is performed). Its portability is directly linked to the one of those other components. While an important subset of commands are enhanced for ELF binary files (36 out of 125 commands), a certain amount of commands also allows a more generic approach to command-based reverse engineering on any kind of programs.

All ELF specific commands are isolated in a separate elf/ subdirectory of the librevm tree.

Libstderesi is a central piece in the ERESI framework, as all of ELFsh, E2Dbg, Etrace, and Evarista components depends on it.

Dependencies

The primitives exported by the ERESI standard library have dependences on other libs from the project:

  • libetrace: the ERESI tracing library, for accesing the ERESI tracer primitives
  • libedfmt: the ERESI debug library, for accessing the ERESI debug format structures
  • libmjollnir: the control flow analysis library, for exporting CFG construction primitives
  • libaspect : the types specification library, for exporting API for hash tables, profiling, and eresi vectors.
  • libelfsh : the ELF binary manipulation library, for ELF specific commands (optional).
  • libasm : the disassembly engine, for full disassembly of binary code with or without symbols (optional).

Articles featuring libstderesi

There is currently no article dedicated to libstderesi.

Clone this wiki locally