Skip to content

Analyses#

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

parse-binary analysis#

revng project analyze parse-binary

Runs after: lift

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.

detect-abi analysis#

revng project 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 RawFunctionDefinition 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 project analyze detect-stack-size

Runs after: segregate-stack-accesses

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

detect-c-strings analysis#

revng project analyze detect-c-strings

Runs after: segregate-stack-accesses

analyze-data-layout analysis#

revng project analyze analyze-data-layout

Runs after: segregate-stack-accesses

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.

llm-rename analysis#

revng project analyze llm-rename

Runs after: single-file

edit-c-body analysis#

revng project analyze edit-c-body

Runs after: tagless-single-file

apply-diff analysis#

revng project analyze apply-diff

Apply a diff to the model.

verify-diff analysis#

revng project analyze verify-diff

Verifies if a diff for the model would apply correctly.

set-model analysis#

revng project analyze set-model

Replace the model with a new one.

verify-model analysis#

revng project analyze verify-model

Verify if the given model is valid.

import-prototypes-from-db analysis#

revng project analyze import-prototypes-from-db

Import function prototypes from a database.

convert-functions-to-cabi analysis#

revng project analyze convert-functions-to-cabi

Convert as many RawFunctionDefinitions as possible to CABIFunctionDefinitions, using the requested ABI.

edit-c-type analysis#

revng project analyze edit-c-type

Import type definitions from C source code, typically the user-edited output of the emit-single-type-definition artifact.