|
ROSE 2.1.0
|
Specimen architecture information.
Root of the entire document.
A CFG is represented explicitly by its edges.
An edge has a source, target, and data.
An indeterminate target has no data. It's a pointer to an unknown location.
A CFG edge that points to an address.
Data associated with a CFG edge.
List of all known functions.
Functions.
All known basic blocks.
Basic blocks.
All known instructions. Every instruction has a unique address.
Instructions ///////////////////////////////////////////////////////////////////////////////////////////////// One machine instruction.
A basic block is an non-empty, ordered list of instruction addresses. The address of a basic block is the address of its first instruction.
If the address is that of an instruction then the target will be a node in the CFG and a basic block with that address will exist in the BasicBlockList table. If the edge points to a non-instruction address, then the address will not be a node in the CFG nor will there be an instruction or basic block with that address.
The source is always a basic block address. The target does not necessarily need to be a node in the control flow graph, although it usually is.
The union of the edge source addresses are the nodes of the CFG and are instruction addresses.
Note that ROSE CFGs usually point to basic blocks rather than individual instructions, so when loading the CFG into ROSE you'll probably want to collapse nodes based on the BasicBlockList.
Root object for the flatbuffers file. Every flatbuffers file will store exactly one of these objects at the top level, and nothing else.
Definition at line 250 of file FlatBufferSchema.h.
#include <Rose/BinaryAnalysis/Serialization/FlatBufferSchema.h>


Public Types | |
| typedef ArchitectureBuilder | Builder |
| typedef SegmentBuilder | Builder |
| typedef MemoryMapBuilder | Builder |
| typedef InstructionBuilder | Builder |
| typedef InstructionListBuilder | Builder |
| typedef BasicBlockBuilder | Builder |
| typedef BasicBlockListBuilder | Builder |
| typedef FunctionBuilder | Builder |
| typedef FunctionListBuilder | Builder |
| typedef CfgEdgeDataBuilder | Builder |
| typedef AddressTargetBuilder | Builder |
| typedef IndeterminateTargetBuilder | Builder |
| typedef CfgEdgeBuilder | Builder |
| typedef CfgBuilder | Builder |
| typedef RootBuilder | Builder |
Public Member Functions | |
| const ::flatbuffers::String * | name () const |
| bool | Verify (::flatbuffers::Verifier &verifier) const |
| uint64_t | address () const |
| const ::flatbuffers::Vector< uint8_t > * | bytes () const |
| uint8_t | accessibility () const |
| Accessibility bits OR'd together. | |
| const ::flatbuffers::String * | name () const |
| optional name | |
| bool | Verify (::flatbuffers::Verifier &verifier) const |
| Rose::BinaryAnalysis::Serialization::FlatBuffers::Endianness | endianness () const |
| const ::flatbuffers::Vector<::flatbuffers::Offset< Rose::BinaryAnalysis::Serialization::FlatBuffers::Segment > > * | segments () const |
| bool | Verify (::flatbuffers::Verifier &verifier) const |
| uint64_t | address () const |
| const ::flatbuffers::Vector< uint8_t > * | bytes () const |
| const ::flatbuffers::String * | mnemonic () const |
| optional mnemonic | |
| const ::flatbuffers::String * | operands () const |
| optional operands | |
| bool | Verify (::flatbuffers::Verifier &verifier) const |
| const ::flatbuffers::Vector<::flatbuffers::Offset< Rose::BinaryAnalysis::Serialization::FlatBuffers::Instruction > > * | instructions () const |
| bool | Verify (::flatbuffers::Verifier &verifier) const |
| const ::flatbuffers::Vector< uint64_t > * | addresses () const |
| addresses of contained instructions in execution order | |
| bool | Verify (::flatbuffers::Verifier &verifier) const |
| const ::flatbuffers::Vector<::flatbuffers::Offset< Rose::BinaryAnalysis::Serialization::FlatBuffers::BasicBlock > > * | basic_blocks () const |
| list of basic blocks with unique starting addresses | |
| bool | Verify (::flatbuffers::Verifier &verifier) const |
| uint64_t | entry_addr () const |
| const ::flatbuffers::Vector< uint64_t > * | instructions () const |
| non-empty instruction addresses belonging to this function | |
| const ::flatbuffers::String * | name () const |
| optional name for function | |
| bool | Verify (::flatbuffers::Verifier &verifier) const |
| const ::flatbuffers::Vector<::flatbuffers::Offset< Rose::BinaryAnalysis::Serialization::FlatBuffers::Function > > * | functions () const |
| list of functions with unique entry addresses | |
| bool | Verify (::flatbuffers::Verifier &verifier) const |
| Rose::BinaryAnalysis::Serialization::FlatBuffers::CfgEdgePurpose | purpose () const |
| bool | Verify (::flatbuffers::Verifier &verifier) const |
| uint64_t | address () const |
| bool | Verify (::flatbuffers::Verifier &verifier) const |
| bool | Verify (::flatbuffers::Verifier &verifier) const |
| uint64_t | src () const |
| Rose::BinaryAnalysis::Serialization::FlatBuffers::CfgEdgeTarget | tgt_type () const |
| const void * | tgt () const |
| template<typename T > | |
| const T * | tgt_as () const |
| const Rose::BinaryAnalysis::Serialization::FlatBuffers::AddressTarget * | tgt_as_AddressTarget () const |
| const Rose::BinaryAnalysis::Serialization::FlatBuffers::IndeterminateTarget * | tgt_as_IndeterminateTarget () const |
| const Rose::BinaryAnalysis::Serialization::FlatBuffers::CfgEdgeData * | data () const |
| bool | Verify (::flatbuffers::Verifier &verifier) const |
| const ::flatbuffers::Vector<::flatbuffers::Offset< Rose::BinaryAnalysis::Serialization::FlatBuffers::CfgEdge > > * | edges () const |
| bool | Verify (::flatbuffers::Verifier &verifier) const |
| const Rose::BinaryAnalysis::Serialization::FlatBuffers::Architecture * | architecture () const |
| const Rose::BinaryAnalysis::Serialization::FlatBuffers::MemoryMap * | memory_map () const |
| const Rose::BinaryAnalysis::Serialization::FlatBuffers::InstructionList * | instructions () const |
| const Rose::BinaryAnalysis::Serialization::FlatBuffers::BasicBlockList * | basic_blocks () const |
| const Rose::BinaryAnalysis::Serialization::FlatBuffers::FunctionList * | functions () const |
| const Rose::BinaryAnalysis::Serialization::FlatBuffers::Cfg * | cfg () const |
| bool | Verify (::flatbuffers::Verifier &verifier) const |
| typedef ArchitectureBuilder Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Builder |
Definition at line 251 of file FlatBufferSchema.h.
| typedef SegmentBuilder Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Builder |
Definition at line 302 of file FlatBufferSchema.h.
| typedef MemoryMapBuilder Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Builder |
Definition at line 394 of file FlatBufferSchema.h.
| typedef InstructionBuilder Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Builder |
Definition at line 463 of file FlatBufferSchema.h.
| typedef InstructionListBuilder Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Builder |
Definition at line 558 of file FlatBufferSchema.h.
| typedef BasicBlockBuilder Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Builder |
Definition at line 616 of file FlatBufferSchema.h.
| typedef BasicBlockListBuilder Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Builder |
Definition at line 670 of file FlatBufferSchema.h.
| typedef FunctionBuilder Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Builder |
Definition at line 727 of file FlatBufferSchema.h.
| typedef FunctionListBuilder Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Builder |
Definition at line 808 of file FlatBufferSchema.h.
| typedef CfgEdgeDataBuilder Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Builder |
Definition at line 863 of file FlatBufferSchema.h.
| typedef AddressTargetBuilder Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Builder |
Definition at line 908 of file FlatBufferSchema.h.
| typedef IndeterminateTargetBuilder Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Builder |
Definition at line 950 of file FlatBufferSchema.h.
| typedef CfgEdgeBuilder Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Builder |
Definition at line 981 of file FlatBufferSchema.h.
| typedef CfgBuilder Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Builder |
Definition at line 1076 of file FlatBufferSchema.h.
| typedef RootBuilder Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Builder |
Definition at line 1134 of file FlatBufferSchema.h.
|
inline |
Definition at line 255 of file FlatBufferSchema.h.
|
inline |
Definition at line 258 of file FlatBufferSchema.h.
|
inline |
Definition at line 309 of file FlatBufferSchema.h.
|
inline |
Definition at line 312 of file FlatBufferSchema.h.
|
inline |
Accessibility bits OR'd together.
Definition at line 316 of file FlatBufferSchema.h.
|
inline |
optional name
Definition at line 320 of file FlatBufferSchema.h.
|
inline |
Definition at line 323 of file FlatBufferSchema.h.
|
inline |
Definition at line 399 of file FlatBufferSchema.h.
|
inline |
Definition at line 402 of file FlatBufferSchema.h.
|
inline |
Definition at line 405 of file FlatBufferSchema.h.
|
inline |
Definition at line 470 of file FlatBufferSchema.h.
|
inline |
Definition at line 473 of file FlatBufferSchema.h.
|
inline |
optional mnemonic
Definition at line 477 of file FlatBufferSchema.h.
|
inline |
optional operands
Definition at line 481 of file FlatBufferSchema.h.
|
inline |
Definition at line 484 of file FlatBufferSchema.h.
|
inline |
Definition at line 562 of file FlatBufferSchema.h.
|
inline |
Definition at line 565 of file FlatBufferSchema.h.
|
inline |
addresses of contained instructions in execution order
Definition at line 621 of file FlatBufferSchema.h.
|
inline |
Definition at line 624 of file FlatBufferSchema.h.
|
inline |
list of basic blocks with unique starting addresses
Definition at line 675 of file FlatBufferSchema.h.
|
inline |
Definition at line 678 of file FlatBufferSchema.h.
|
inline |
Definition at line 733 of file FlatBufferSchema.h.
|
inline |
non-empty instruction addresses belonging to this function
Definition at line 737 of file FlatBufferSchema.h.
|
inline |
optional name for function
Definition at line 741 of file FlatBufferSchema.h.
|
inline |
Definition at line 744 of file FlatBufferSchema.h.
|
inline |
list of functions with unique entry addresses
Definition at line 813 of file FlatBufferSchema.h.
|
inline |
Definition at line 816 of file FlatBufferSchema.h.
|
inline |
Definition at line 867 of file FlatBufferSchema.h.
|
inline |
Definition at line 870 of file FlatBufferSchema.h.
|
inline |
Definition at line 912 of file FlatBufferSchema.h.
|
inline |
Definition at line 915 of file FlatBufferSchema.h.
|
inline |
Definition at line 951 of file FlatBufferSchema.h.
|
inline |
Definition at line 988 of file FlatBufferSchema.h.
|
inline |
Definition at line 991 of file FlatBufferSchema.h.
|
inline |
Definition at line 994 of file FlatBufferSchema.h.
|
inline |
Definition at line 998 of file FlatBufferSchema.h.
|
inline |
Definition at line 1001 of file FlatBufferSchema.h.
|
inline |
Definition at line 1004 of file FlatBufferSchema.h.
|
inline |
Definition at line 1007 of file FlatBufferSchema.h.
|
inline |
Definition at line 1080 of file FlatBufferSchema.h.
|
inline |
Definition at line 1083 of file FlatBufferSchema.h.
|
inline |
Definition at line 1143 of file FlatBufferSchema.h.
|
inline |
Definition at line 1146 of file FlatBufferSchema.h.
|
inline |
Definition at line 1149 of file FlatBufferSchema.h.
|
inline |
Definition at line 1152 of file FlatBufferSchema.h.
|
inline |
Definition at line 1155 of file FlatBufferSchema.h.
|
inline |
Definition at line 1158 of file FlatBufferSchema.h.
|
inline |
Definition at line 1161 of file FlatBufferSchema.h.