1 #ifndef ROSE_BinaryAnalysis_BasicTypes_H
2 #define ROSE_BinaryAnalysis_BasicTypes_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_BINARY_ANALYSIS
7 #include <Rose/BinaryAnalysis/RegisterDescriptor.h>
8 #include <Sawyer/SharedPointer.h>
12 namespace BinaryAnalysis {
16 class AbstractLocation;
17 class AsmFunctionIndex;
37 class InstructionCache;
39 class LibraryIdentification;
40 class LockedInstruction;
42 class ManagedInstruction;
63 class SymbolicExpresssionParser;
68 namespace CallingConvention {
74 namespace PointerDetection {
80 namespace ReturnValueUsed {
85 namespace StackDelta {
109 namespace SymbolicExpression {
125 namespace Variables {
140 #include <Rose/BinaryAnalysis/Concolic/BasicTypes.h>
141 #include <Rose/BinaryAnalysis/Debugger/BasicTypes.h>
142 #include <Rose/BinaryAnalysis/Disassembler/BasicTypes.h>
143 #include <Rose/BinaryAnalysis/Dwarf/BasicTypes.h>
144 #include <Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h>
145 #include <Rose/BinaryAnalysis/ModelChecker/Types.h>
146 #include <Rose/BinaryAnalysis/Partitioner2/BasicTypes.h>
Information about a stack frame.
Interface to the Z3 SMT solver.
A loader suitable for ELF object files.
Description of a global variable.
Base class for visiting nodes during expression traversal.
Defines the mapping between code values and octets.
Describes how to modify machine state after each instruction.
Bidirectional mapping between addresses and source locations.
Analysis to find variable locations.
Describes a local or global variable.
Convert binary to low-level C source code.
Loader for Windows PE files.
Various tools for performing tainted flow analysis.
Base class for symbolic expression nodes.
Output binary analysis state.
Mapping from expression to expression.
Terminated string encoding scheme.
Function calling convention.
Analysis to find encoded strings.
Settings to control the pointer analysis.
Main namespace for the ROSE library.
Binary function call analysis.
Holds a set of registers without regard for register boundaries.
Base class for binary state input and output.
S-Record hexadecimal data formats.
Analyzes basic blocks to get system call names.
Valid code point predicate.
Operator-specific simplification methods.
std::vector< RegisterDescriptor > RegisterDescriptors
List of register descriptors in dictionary.
Concrete location of data.
An encoder plus interval.
Insert new code in place of existing instructions.
Encoding for the length of a string.
Information about calling conventions.
Convert a register descriptor to a name.
An efficient mapping from an address space to stored data.
Description of one pointer.
Wrapper around solvers that speak SMT-LIB.
Analysis that computes reachability of CFG vertices.
Analysis to test the similarity of two functions.
Various tools for data-flow analysis.
Exceptions for symbolic expressions.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.
std::shared_ptr< SmtSolver > SmtSolverPtr
Reference counting pointer.
Leaf node of an expression tree for instruction semantics.
Errors for string analysis.
Basic length encoding scheme.
Interior node of an expression tree for instruction semantics.
Interface to Satisfiability Modulo Theory (SMT) solvers.
Defines registers available for a particular architecture.
Length-prefixed string encoding scheme.
Type of symbolic expression.
Analysis that looks for no-op equivalents.
Basic character encoding scheme.
Description of a local stack variable within a function.