|
ROSE 2.1.0
|
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 57 of file SymbolicSemantics.h.
| using Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::LeafPtr = typedef SymbolicExpression::LeafPtr |
Definition at line 58 of file SymbolicSemantics.h.
| using Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::InteriorNode = typedef SymbolicExpression::Interior |
Definition at line 59 of file SymbolicSemantics.h.
| using Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::InteriorPtr = typedef SymbolicExpression::InteriorPtr |
Definition at line 60 of file SymbolicSemantics.h.
| using Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::ExprNode = typedef SymbolicExpression::Node |
Definition at line 61 of file SymbolicSemantics.h.
| using Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::ExprPtr = typedef SymbolicExpression::Ptr |
Definition at line 62 of file SymbolicSemantics.h.
| using Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::InsnSet = typedef std::set<SgAsmInstruction*> |
Definition at line 63 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 80 of file SymbolicSemantics.h.
| typedef Sawyer::SharedPointer<class SValue> Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::SValuePtr |
Shared-ownership pointer for symbolic semantic value.
Definition at line 121 of file SymbolicSemantics.h.
| typedef BaseSemantics::RegisterStateGeneric Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::RegisterState |
Definition at line 377 of file SymbolicSemantics.h.
| typedef BaseSemantics::RegisterStateGenericPtr Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::RegisterStatePtr |
Definition at line 378 of file SymbolicSemantics.h.
| typedef BaseSemantics::FrameState Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::FrameState |
Definition at line 385 of file SymbolicSemantics.h.
| typedef BaseSemantics::FrameStatePtr Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::FrameStatePtr |
Definition at line 386 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 394 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 602 of file SymbolicSemantics.h.
Definition at line 699 of file SymbolicSemantics.h.
| typedef MemoryListStatePtr Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::MemoryStatePtr |
Definition at line 700 of file SymbolicSemantics.h.
Definition at line 706 of file SymbolicSemantics.h.
| typedef BaseSemantics::StatePtr Rose::BinaryAnalysis::InstructionSemantics::SymbolicSemantics::StatePtr |
Definition at line 707 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 729 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 715 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 722 of file SymbolicSemantics.h.