package bap-std

  1. Overview
  2. Docs
The Binary Analysis Platform Standard Library

Install

Dune Dependency

Authors

Maintainers

Sources

v2.5.0.tar.gz
sha256=9c126781385d2fa9b8edab22e62b25c70bf2f99f6ec78abb7e5e36d63cfa4174
md5=5abd9b3628b43f797326034f31ca574f

doc/bap/Bap/Std/Reconstructor/index.html

Module Std.Reconstructor

Reconstructor is responsible for reconstructing symbol table from a CFG. It should partition a CFG into a set of possibly intersecting functions. See Symtab module for more information about symbol table and functions.

type t = reconstructor
val create : (cfg -> symtab) -> t

create f creates a reconstructor from a given function f

val default : (word -> string) -> word list -> t

default name roots builds a reconstructor from a given function, that maps addresses to function names (see Symbolizer) and a list of known function starts. The reconstructor will extend the list of function starts with destinations of call instructions found in the CFG. Also, the reconstructor treats every node without input edges as a function start. For each function start builds a function using the following definition of a function:

Function is built from the entry block and every block that is reachable from it without using calls.

val of_blocks : (string * addr * addr) seq -> t

of_blocks produces a reconstructor from a serialized sequence of blocks. Each element of the sequence is deconstructed as (name,ba,ea), where name is a subroutine name, ba is a virtual address of a block start, and ea is an address of the block end.

val run : t -> cfg -> symtab

run reconstructor cfg reconstructs a symbol table from a given cfg

module Factory : Source.Factory.S with type t = t

a factory of reconstructors

OCaml

Innovation. Community. Security.