Crate radeco_lib [] [src]

The Radare2 Decompilation Library

radeco-lib is the crate that powers the radare2 decompiler.

Apart from decompilation, this library is designed to allow users to perform static analysis on binaries in a easy and intuitive way. Reusuablility and Interactivity are the most important design principles of this library.

Design

radeco-lib is built on top of r2pipe.rs, a simple library that provides methods to communicate with radare2 (using pipes). To know more about r2pipe or radare2 in general, please head over to the repo.

radeco-lib works on analyzing ESIL (Evaluable Strings Intermediate Language), an intermediate representation (IR) used by radare2 for emulation. ESIL is converted into an internal SSA IR and used for subsequent analysis and optimizations.

NOTE: This library is still under heavy developement. Some API's have been stabilized, please check the docs before using radeco-lib in your projects as changes may not be backwards compatible. Contributions, suggestions and bug reports are always welcome at: tracker

Modules

analysis

Module that implements analysis and optimizations on radeco IR.

backend

Components converting SSA to more high level representations.

frontend

Components concerned with getting input to SSA form.

middle

Components processing data in SSA form.

utils

Module implements Pipeline and Runner structs to make radeco-lib easier to use.