Skip to content

Analyses#

This page reports the list of all the analyses currently featured in rev.ng.

apply-diff analysis#

revng analyze apply-diff

Runs after: initial

Apply a diff to the model.

verify-diff analysis#

revng analyze verify-diff

Runs after: initial

Verifies if a diff for the model would apply correctly.

set-global analysis#

revng analyze set-global

Runs after: initial

Replace the model with a new one.

verify-global analysis#

revng analyze verify-global

Runs after: initial

Verify if the given model is valid.

import-binary analysis#

revng analyze import-binary

Runs after: initial

This analysis inspects the input binary and, if its format is among the supported ones, imports all the available information in the model. If debug info are available, they are imported as well.

In particular, from the binary image we import Segments, the EntryPoint and, if symbols are available, Function Entry and names. We currently support ELF, PE/COFF and Mach-O.

From debug information, all the data structures and function prototypes are imported. We currently support DWARF and CodeView (.pdb) debug info.

import-well-known-models analysis#

revng analyze import-well-known-models

Runs after: initial

Import the prototype of certain well-known functions from the C standard library.

convert-functions-to-cabi analysis#

revng analyze convert-functions-to-cabi

Runs after: initial

Convert as many RawFunctionTypes as possible to CABIFunctionTypes, using the requested ABI.

detect-abi analysis#

revng analyze detect-abi

Runs after: lift

This analysis creates new functions from targets of function calls and from code addresses found in the code or in memory that would otherwise be unreachable.

Additionally, the analysis builds, for each function lacking a prototype, a RawFunctionType by automatically identifying the list of arguments passed through registers and the list of return values.

This analysis doesn't handle stack arguments.

detect-stack-size analysis#

revng analyze detect-stack-size

Runs after: detect-stack-size

This analysis, for each function, identifies the size of the stack frame and the amount of stack used to pass arguments.

analyze-data-layout analysis#

revng analyze analyze-data-layout

Runs after: make-segment-ref

This analysis inspects the memory accesses performed by the input program and detects the layout of data structures. The produced data structures are the result of merging the information obtained from each function interprocedurally.

import-from-c analysis#

revng analyze import-from-c

Runs after: decompile

This analysis, given a snippet of C code representing an individual type, parses it and imports into the model, possibly replacing an existing type.