com.pnfsoftware.jeb.core.units.code.IControlFlowGraph<InsnType extends com.pnfsoftware.jeb.core.units.code.IInstruction> |
![]()
CFG<InsnType extends IInstruction>
|
Generic interface for control flow graph objects.
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
abstract IBasicBlock<InsnType> |
get(int index)
Retrieve a basic block.
| ||||||||||
abstract IBasicBlock<InsnType> |
getBlockAt(long base)
Get the basic block that starts at the provided address or offset.
| ||||||||||
abstract IBasicBlock<InsnType> |
getBlockContaining(long address)
Get the basic block that contains the provided address.
| ||||||||||
abstract List<? extends IBasicBlock<InsnType>> |
getBlocks()
Get a copy of the block list of the CFG.
| ||||||||||
abstract void |
getGraphRepresentation(List<int[]> edges, List<int[]> irregularEdges)
Get the a graph representation of the CFG.
| ||||||||||
abstract InsnType |
getInstruction(long address)
Get the instruction located at the exact address.
| ||||||||||
abstract int |
getInstructionCount()
Get the total number of instructions in the CFG.
| ||||||||||
abstract Couple<? extends IBasicBlock<InsnType>, Integer> | getInstructionLocation(long address) | ||||||||||
abstract List<InsnType> |
getInstructions()
Get the instruction list of this CFG by aggregating each instruction of every block.
| ||||||||||
abstract int |
size()
Get the number of blocks.
|
Get the basic block that starts at the provided address or offset.
base | the block address/offset |
---|
Get the basic block that contains the provided address.
Note that the address just needs to be in the block address range; it does not need to point to the beginning of an instruction within the block
address | an address within the block |
---|
Get a copy of the block list of the CFG. The list is ordered by ascending block address. Modifying the list does not impact the CFG.
Get the a graph representation of the CFG. The list of edges return use a 1-based node numbering scheme.
edges | (output) array of regular edges, eg: {{1,2},{1,3},{2,3}} |
---|---|
irregularEdges | (output) array of irregular edges |
Get the instruction located at the exact address.
Get the total number of instructions in the CFG. This method sums the number of instructions of each block of the CFG.
Get the instruction list of this CFG by aggregating each instruction of every block. The list is ordered by ascending address/offset.
Get the number of blocks.