ROSE 0.11.145.192
Rose/BinaryAnalysis/BasicTypes.h
1#ifndef ROSE_BinaryAnalysis_BasicTypes_H
2#define ROSE_BinaryAnalysis_BasicTypes_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_BINARY_ANALYSIS
5#include <RoseFirst.h>
6
7// #include's for subdirectories and sub-namespaces are at the end of this header.
8#include <Rose/BinaryAnalysis/RegisterDescriptor.h>
9#include <Sawyer/SharedPointer.h>
10#include <memory>
11
12namespace Rose {
13namespace BinaryAnalysis {
14
15// Document definitions, but not forwared declarations.
16
17class AbstractLocation;
18class AsmFunctionIndex;
19class AstHasher;
20class BestMapAddress;
21class BinaryLoader;
23class BinaryLoaderElf;
27class BinaryLoaderPe;
29class BinaryToSource;
30class CodeInserter;
32class DataFlow;
33class Demangler;
34class FeasiblePath;
35class FunctionCall;
37class HotPatch;
38class LibraryIdentification;
39class MagicNumber;
40class MemoryMap;
42class NoOperation;
43class Reachability;
44class ReadWriteSets;
45using ReadWriteSetsPtr = std::shared_ptr<ReadWriteSets>;
46using RegisterDescriptors = std::vector<RegisterDescriptor>;
49class RegisterNames;
50class RegisterParts;
51class SerialInput;
53class SerialIo;
55class SerialOutput;
57class SmtlibSolver;
58class SmtSolver;
59using SmtSolverPtr = std::shared_ptr<SmtSolver>;
60class SourceLocations;
61class SRecord;
62class SymbolicExpresssionParser;
63class SystemCall;
64class TaintedFlow;
65class Z3Solver;
66
67namespace PointerDetection {
68class Analysis;
70class Settings;
71} // namespace
72
73namespace ReturnValueUsed {
74class Analysis;
75class CallSiteResults;
76} // namespace
77
78namespace StackDelta {
79class Analysis;
81} // namespace
82
102
103namespace SymbolicExpression {
104class Exception;
105class ExprExprHashMap;
106class Formatter;
107class Interior;
109class Leaf;
111class Node;
113class Simplifier;
114class Type;
115class Visitor;
116} // namespace
118
119} // namespace
120} // namespace
121
122#endif
123
124// #include's for sub-namespaces and sub-directories
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>
135
136#endif
A loader suitable for ELF object files.
Loader for Windows PE files.
Convert binary to low-level C source code.
Definition ToSource.h:22
Insert new code in place of existing instructions.
Various tools for data-flow analysis.
Definition DataFlow.h:72
Demangle mangled names.
Definition Demangler.h:15
Feasible path analysis.
Binary function call analysis.
Analysis to test the similarity of two functions.
Describes how to modify machine state after each instruction.
Definition HotPatch.h:22
An efficient mapping from an address space to stored data.
Definition MemoryMap.h:115
Analysis that looks for no-op equivalents.
Definition NoOperation.h:14
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.
Definition SRecord.h:37
Input binary analysis state.
Definition SerialIo.h:439
Base class for binary state input and output.
Definition SerialIo.h:114
Output binary analysis state.
Definition SerialIo.h:270
Interface to Satisfiability Modulo Theory (SMT) solvers.
Definition SmtSolver.h:39
Wrapper around solvers that speak SMT-LIB.
Bidirectional mapping between addresses and source locations.
Defines mapping between code points and code values.
Definition String.h:221
Defines the mapping between code values and octets.
Definition String.h:334
Errors for string analysis.
Definition String.h:180
Length-prefixed string encoding scheme.
Definition String.h:629
Encoding for the length of a string.
Definition String.h:409
Analysis to find encoded strings.
Definition String.h:806
Terminated string encoding scheme.
Definition String.h:694
Controls formatting of expression trees when printing.
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.
Base class for visiting nodes during expression traversal.
Analyzes basic blocks to get system call names.
Definition SystemCall.h:22
Various tools for performing tainted flow analysis.
Definition TaintedFlow.h:18
Interface to the Z3 SMT solver.
Definition Z3Solver.h:33
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.
The ROSE library.