ROSE 0.11.145.147
Namespaces | Classes | Typedefs | Enumerations
Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics Namespace Reference

Description

A fully symbolic semantic domain.

This semantic domain can be used to emulate the execution of a single basic block of instructions. It is similar in nature to PartialSymbolicSemantics, but with a different type of semantics value (SValue): instead of values being a constant or variable with offset, values here are expression trees.

If an SMT solver is supplied a to the RiscOperators then that SMT solver will be used to answer various questions such as when two memory addresses can alias one another. When an SMT solver is lacking, the questions will be answered by very naive comparison of the expression trees.

Namespaces

namespace  AllowSideEffects
 Boolean for allowing side effects.
 

Classes

class  Formatter
 Formatter for symbolic values. More...
 
class  MemoryListState
 Byte-addressable memory. More...
 
class  MemoryMapState
 Byte-addressable memory. More...
 
class  Merger
 Controls merging of symbolic values. More...
 
class  RiscOperators
 Defines RISC operators for the SymbolicSemantics domain. More...
 
class  SValue
 Type of values manipulated by the SymbolicSemantics domain. More...
 

Typedefs

using LeafNode = SymbolicExpression::Leaf
 
using LeafPtr = SymbolicExpression::LeafPtr
 
using InteriorNode = SymbolicExpression::Interior
 
using InteriorPtr = SymbolicExpression::InteriorPtr
 
using ExprNode = SymbolicExpression::Node
 
using ExprPtr = SymbolicExpression::Ptr
 
using InsnSet = std::set< SgAsmInstruction * >
 
using MergerPtr = Sawyer::SharedPointer< class Merger >
 Shared-ownership pointer for a merge control object.
 
typedef Sawyer::SharedPointer< class SValueSValuePtr
 Shared-ownership pointer for symbolic semantic value.
 
typedef BaseSemantics::RegisterStateGeneric RegisterState
 
typedef BaseSemantics::RegisterStateGenericPtr RegisterStatePtr
 
typedef boost::shared_ptr< class MemoryListStateMemoryListStatePtr
 Shared-ownership pointer for symbolic list-based memory state.
 
typedef boost::shared_ptr< class MemoryMapStateMemoryMapStatePtr
 Shared-ownership pointer to symbolic memory state.
 
typedef MemoryListState MemoryState
 
typedef MemoryListStatePtr MemoryStatePtr
 
typedef BaseSemantics::State State
 
typedef BaseSemantics::StatePtr StatePtr
 
typedef boost::shared_ptr< class RiscOperatorsRiscOperatorsPtr
 Shared-ownership pointer to symbolic RISC operations.
 

Enumerations

enum  WritersMode {
  TRACK_NO_WRITERS ,
  TRACK_LATEST_WRITER ,
  TRACK_ALL_WRITERS
}
 How to update the list of writers stored at each abstract location. More...
 
enum  DefinersMode {
  TRACK_NO_DEFINERS ,
  TRACK_LATEST_DEFINER ,
  TRACK_ALL_DEFINERS
}
 How to update the list of definers stored in each semantic value. More...
 

Typedef Documentation

◆ LeafNode

Definition at line 53 of file SymbolicSemantics.h.

◆ LeafPtr

Definition at line 54 of file SymbolicSemantics.h.

◆ InteriorNode

Definition at line 55 of file SymbolicSemantics.h.

◆ InteriorPtr

Definition at line 56 of file SymbolicSemantics.h.

◆ ExprNode

Definition at line 57 of file SymbolicSemantics.h.

◆ ExprPtr

Definition at line 58 of file SymbolicSemantics.h.

◆ InsnSet

using Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::InsnSet = typedef std::set<SgAsmInstruction*>

Definition at line 59 of file SymbolicSemantics.h.

◆ MergerPtr

Shared-ownership pointer for a merge control object.

Definition at line 76 of file SymbolicSemantics.h.

◆ SValuePtr

Shared-ownership pointer for symbolic semantic value.

Definition at line 117 of file SymbolicSemantics.h.

◆ RegisterState

Definition at line 373 of file SymbolicSemantics.h.

◆ RegisterStatePtr

typedef BaseSemantics::RegisterStateGenericPtr Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::RegisterStatePtr

Definition at line 374 of file SymbolicSemantics.h.

◆ MemoryListStatePtr

Shared-ownership pointer for symbolic list-based memory state.

Definition at line 382 of file SymbolicSemantics.h.

◆ MemoryMapStatePtr

Shared-ownership pointer to symbolic memory state.

Definition at line 590 of file SymbolicSemantics.h.

◆ MemoryState

Definition at line 687 of file SymbolicSemantics.h.

◆ MemoryStatePtr

typedef MemoryListStatePtr Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::MemoryStatePtr

Definition at line 688 of file SymbolicSemantics.h.

◆ State

Definition at line 694 of file SymbolicSemantics.h.

◆ StatePtr

typedef BaseSemantics::StatePtr Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::StatePtr

Definition at line 695 of file SymbolicSemantics.h.

◆ RiscOperatorsPtr

Shared-ownership pointer to symbolic RISC operations.

Definition at line 717 of file SymbolicSemantics.h.

Enumeration Type Documentation

◆ WritersMode

How to update the list of writers stored at each abstract location.

Enumerator
TRACK_NO_WRITERS 

Do not track writers.

TRACK_LATEST_WRITER 

Save only the latest writer.

TRACK_ALL_WRITERS 

Save all writers.

Definition at line 703 of file SymbolicSemantics.h.

◆ DefinersMode

How to update the list of definers stored in each semantic value.

Enumerator
TRACK_NO_DEFINERS 

Do not track definers.

TRACK_LATEST_DEFINER 

Save only the latest definer.

TRACK_ALL_DEFINERS 

Save all definers.

Definition at line 710 of file SymbolicSemantics.h.