ROSE 0.11.145.147
|
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... | |
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... | |
using Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::LeafNode = typedef SymbolicExpression::Leaf |
Definition at line 53 of file SymbolicSemantics.h.
using Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::LeafPtr = typedef SymbolicExpression::LeafPtr |
Definition at line 54 of file SymbolicSemantics.h.
using Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::InteriorNode = typedef SymbolicExpression::Interior |
Definition at line 55 of file SymbolicSemantics.h.
using Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::InteriorPtr = typedef SymbolicExpression::InteriorPtr |
Definition at line 56 of file SymbolicSemantics.h.
using Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::ExprNode = typedef SymbolicExpression::Node |
Definition at line 57 of file SymbolicSemantics.h.
using Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::ExprPtr = typedef SymbolicExpression::Ptr |
Definition at line 58 of file SymbolicSemantics.h.
using Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::InsnSet = typedef std::set<SgAsmInstruction*> |
Definition at line 59 of file SymbolicSemantics.h.
using Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::MergerPtr = typedef Sawyer::SharedPointer<class Merger> |
Shared-ownership pointer for a merge control object.
Definition at line 76 of file SymbolicSemantics.h.
typedef Sawyer::SharedPointer<class SValue> Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::SValuePtr |
Shared-ownership pointer for symbolic semantic value.
Definition at line 117 of file SymbolicSemantics.h.
typedef BaseSemantics::RegisterStateGeneric Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::RegisterState |
Definition at line 373 of file SymbolicSemantics.h.
typedef BaseSemantics::RegisterStateGenericPtr Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::RegisterStatePtr |
Definition at line 374 of file SymbolicSemantics.h.
typedef boost::shared_ptr<class MemoryListState> Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::MemoryListStatePtr |
Shared-ownership pointer for symbolic list-based memory state.
Definition at line 382 of file SymbolicSemantics.h.
typedef boost::shared_ptr<class MemoryMapState> Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::MemoryMapStatePtr |
Shared-ownership pointer to symbolic memory state.
Definition at line 590 of file SymbolicSemantics.h.
Definition at line 687 of file SymbolicSemantics.h.
typedef MemoryListStatePtr Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::MemoryStatePtr |
Definition at line 688 of file SymbolicSemantics.h.
Definition at line 694 of file SymbolicSemantics.h.
typedef BaseSemantics::StatePtr Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::StatePtr |
Definition at line 695 of file SymbolicSemantics.h.
typedef boost::shared_ptr<class RiscOperators> Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::RiscOperatorsPtr |
Shared-ownership pointer to symbolic RISC operations.
Definition at line 717 of file SymbolicSemantics.h.
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.
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.