1#ifndef ROSE_BinaryAnalysis_BasicTypes_H
2#define ROSE_BinaryAnalysis_BasicTypes_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_BINARY_ANALYSIS
8#include <Rose/BinaryAnalysis/RegisterDescriptor.h>
9#include <Sawyer/SharedPointer.h>
13namespace BinaryAnalysis {
17class AbstractLocation;
18class AsmFunctionIndex;
38class LibraryIdentification;
62class SymbolicExpresssionParser;
67namespace PointerDetection {
73namespace ReturnValueUsed {
103namespace SymbolicExpression {
125#include <Rose/BinaryAnalysis/Architecture/BasicTypes.h>
126#include <Rose/BinaryAnalysis/CallingConvention/BasicTypes.h>
127#include <Rose/BinaryAnalysis/Concolic/BasicTypes.h>
128#include <Rose/BinaryAnalysis/Debugger/BasicTypes.h>
129#include <Rose/BinaryAnalysis/Disassembler/BasicTypes.h>
130#include <Rose/BinaryAnalysis/Dwarf/BasicTypes.h>
131#include <Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h>
132#include <Rose/BinaryAnalysis/ModelChecker/BasicTypes.h>
133#include <Rose/BinaryAnalysis/Partitioner2/BasicTypes.h>
134#include <Rose/BinaryAnalysis/Variables/BasicTypes.h>
A loader suitable for ELF object files.
Loader for Windows PE files.
Convert binary to low-level C source code.
Insert new code in place of existing instructions.
Concrete location of data.
Various tools for data-flow analysis.
Binary function call analysis.
Analysis to test the similarity of two functions.
Describes how to modify machine state after each instruction.
An efficient mapping from an address space to stored data.
Analysis that looks for no-op equivalents.
Description of one pointer.
Settings to control the pointer analysis.
Analysis that computes reachability of CFG vertices.
Sets of variables based on whether they're read or written.
Defines registers available for a particular architecture.
Convert a register descriptor to a name.
Holds a set of registers without regard for register boundaries.
S-Record hexadecimal data formats.
Base class for binary state input and output.
Output binary analysis state.
Interface to Satisfiability Modulo Theory (SMT) solvers.
Wrapper around solvers that speak SMT-LIB.
Bidirectional mapping between addresses and source locations.
Basic character encoding scheme.
Basic length encoding scheme.
Defines the mapping between code values and octets.
Valid code point predicate.
An encoder plus interval.
Errors for string analysis.
Length-prefixed string encoding scheme.
Encoding for the length of a string.
Analysis to find encoded strings.
Terminated string encoding scheme.
Exceptions for symbolic expressions.
Mapping from expression to expression.
Interior node of an expression tree for instruction semantics.
Leaf node of an expression tree for instruction semantics.
Base class for symbolic expression nodes.
Operator-specific simplification methods.
Type of symbolic expression.
Base class for visiting nodes during expression traversal.
Analyzes basic blocks to get system call names.
Various tools for performing tainted flow analysis.
Interface to the Z3 SMT solver.
void initNamespace()
Initialize this namespace.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.
std::shared_ptr< ReadWriteSets > ReadWriteSetsPtr
Reference counting pointer.
std::shared_ptr< SmtSolver > SmtSolverPtr
Reference counting pointer.
std::vector< RegisterDescriptor > RegisterDescriptors
List of register descriptors in dictionary.