Uses of Class
com.pnfsoftware.jeb.core.units.code.asm.cfg.BasicBlock
Packages that use BasicBlock
Package
Description
Types relating to the disassembler engine.
Control-flow graph types specific to native code.
This package and its sub-packages contain the types used to access
gendec
, JEB's generic
decompiler.Types used to create and access
gendec
's IR (Intermediate Representation).Types specific to
gendec
's IR optimizers.-
Uses of BasicBlock in com.pnfsoftware.jeb.core.units.code.asm.analyzer
Methods in com.pnfsoftware.jeb.core.units.code.asm.analyzer that return BasicBlock -
Uses of BasicBlock in com.pnfsoftware.jeb.core.units.code.asm.cfg
Methods in com.pnfsoftware.jeb.core.units.code.asm.cfg that return BasicBlockModifier and TypeMethodDescriptionCFG.get
(int index) CFG.getBlock
(int index) CFG.getBlockAt
(long address) CFG.getBlockByLastAddress
(long lastAddress) CFG.getBlockContaining
(long address) CFG.getBlockEndingAt
(long address) CFG.getEntryBlock()
BasicBlock.getInputBlock
(int index) BasicBlock.getIrregularInputBlock
(int index) BasicBlock.getIrregularOutputBlock
(int index) BasicBlock.getOutputBlock
(int index) BasicBlock.shallowCopy
(boolean copyBlockReferences) Shallow duplication of a basic block.CFG.splitBlock
(BasicBlock<InsnType> b, int index) Split a block into two blocks.Methods in com.pnfsoftware.jeb.core.units.code.asm.cfg that return types with arguments of type BasicBlockModifier and TypeMethodDescriptionCFG.getAddressBlockMap()
Get a complete map of the basic blocks and their addresses in the CFG.BasicBlock.getAllInputBlocks()
BasicBlock.getAllInputs()
BasicBlock.getAllOutputBlocks()
BasicBlock.getAllOutputs()
CFG.getBlocks()
CFG.getBlocksView()
CFG.getExitBlocks()
BasicBlock.getInputBlocks()
BasicBlock.getInputs()
Retrieve a read-only list of input blocks (regular).CFG.getInstructionLocation
(long address) CFG.getInstructionLocation
(InsnType insn) Locate an instruction.BasicBlock.getIrregularInputBlocks()
BasicBlock.getIrregularInputs()
Retrieve a read-only list of irregular input blocks.BasicBlock.getIrregularOutputBlocks()
BasicBlock.getIrregularOutputs()
BasicBlock.getOutputBlocks()
BasicBlock.getOutputs()
static <T extends IInstruction>
Collection<BasicBlock<T>>CFGUtil.getReachableBlocks
(CFG<T> cfg) Collect the list of all blocks reachable from the entry point.CFG.indexedBlocks()
Get an indexed-block iterator.CFG.iterator()
Get a block iterator.Methods in com.pnfsoftware.jeb.core.units.code.asm.cfg with parameters of type BasicBlockModifier and TypeMethodDescriptionvoid
CFG.addBlock
(int index, BasicBlock<InsnType> b) Insert a block, does nothing else.void
CFG.addBlock
(BasicBlock<InsnType> b) Add a block, does nothing else.boolean
CFG.addEdge
(BasicBlock<InsnType> x, BasicBlock<InsnType> y) TODO: rename to connect() and SHOULD NOT USE.int
CFG.addEdge
(BasicBlock<InsnType> x, BasicBlock<InsnType> y, int index) Add a regular edge X->Y.boolean
CFG.addIrregularEdge
(BasicBlock<InsnType> x, BasicBlock<InsnType> y) TODO: Rename to connectIrregular() and SHOULD NOT USE.int
CFG.addIrregularEdge
(BasicBlock<InsnType> x, BasicBlock<InsnType> y, int index) int
BasicBlock.compareTo
(BasicBlock<InsnType> o) boolean
CFG.deleteDuplicateEdge
(BasicBlock<InsnType> x, BasicBlock<InsnType> y) Delete one duplicate edge X->Y.boolean
CFG.deleteEdge
(BasicBlock<InsnType> x, BasicBlock<InsnType> y) Delete an edge x->y.int
CFG.deleteEdge
(BasicBlock<InsnType> x, BasicBlock<InsnType> y, int xToYPos) Delete an edge x->y.int
CFG.deleteEdges
(BasicBlock<InsnType> x, BasicBlock<InsnType> y) boolean
CFG.deleteIrregularEdge
(BasicBlock<InsnType> x, BasicBlock<InsnType> y) Delete an irregular edge x->y.int
CFG.deleteIrregularEdge
(BasicBlock<InsnType> x, BasicBlock<InsnType> y, int xToYPos) Delete an irregular edge x->y.int
CFG.deleteIrregularEdges
(BasicBlock<InsnType> x, BasicBlock<InsnType> y) void
Delete all irregular output edges for the provided block.void
CFG.deleteOutEdges
(BasicBlock<InsnType> b) Delete all regular output edges for the provided block.protected void
CFGFormatter.genAddressCharacter
(StringBuilder sb, long address, InsnType insn, BasicBlock<InsnType> b, int i) The default implementation generates one of:
: (default) > (entry) + (block) * (handler) v (branching down) ^ (branching up)
int
CFG.indexOf
(BasicBlock<InsnType> b) int
CFG.reconnectEdge
(BasicBlock<InsnType> x, BasicBlock<InsnType> y, BasicBlock<InsnType> z) This method reconnects a block x from y to z, i.e.int
CFG.reconnectEdge
(BasicBlock<InsnType> x, BasicBlock<InsnType> y, BasicBlock<InsnType> z, Integer xToYPos) This method reconnects a block x from y to z, i.e.int
CFG.reconnectIrregularEdge
(BasicBlock<InsnType> x, BasicBlock<InsnType> y, BasicBlock<InsnType> z) This method irregularly reconnects a block x from y to z, i.e.int
CFG.reconnectIrregularEdge
(BasicBlock<InsnType> x, BasicBlock<InsnType> y, BasicBlock<InsnType> z, Integer xToYPos) This method irregularly reconnects a block x from y to z, i.e.int
CFG.reconnectIrregularEdges
(BasicBlock<InsnType> x, BasicBlock<InsnType> y, BasicBlock<InsnType> z) void
CFG.removeBlock
(BasicBlock<InsnType> b) Remove a block, and update the fixtures.CFG.splitBlock
(BasicBlock<InsnType> b, int index) Split a block into two blocks.Method parameters in com.pnfsoftware.jeb.core.units.code.asm.cfg with type arguments of type BasicBlockModifier and TypeMethodDescriptionstatic <T extends IInstruction>
intCFGUtil.removeUnreachableBlocks
(CFG<T> cfg, List<BasicBlock<T>> tbr) Remove a list of blocks from the CFG.Constructor parameters in com.pnfsoftware.jeb.core.units.code.asm.cfg with type arguments of type BasicBlockModifierConstructorDescriptionCFG
(long entry, List<BasicBlock<InsnType>> blocks) Create a standard CFG using a pre-constructed list of basic blocks. -
Uses of BasicBlock in com.pnfsoftware.jeb.core.units.code.asm.decompiler
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler that return BasicBlockModifier and TypeMethodDescriptionprotected BasicBlock<InsnType>
AbstractConverter.preBlockConversion
(CFG<InsnType> cfg, BasicBlock<InsnType> b, List<IEStatement> interlist) This method is called beforeAbstractConverter.convertBlock(BasicBlock, List)
is called.Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler with parameters of type BasicBlockModifier and TypeMethodDescriptionprotected void
AbstractConverter.convertBlock
(BasicBlock<InsnType> b, List<IEStatement> interlist) Convert a basic block.final List<IEStatement>
AbstractConverter.convertBlockForTest
(BasicBlock<InsnType> b) Reserved for testing.protected final boolean
AbstractConverter.isPCRightValueCompatibleReturnValue
(IDFA<IEStatement> dfa, BasicBlock<IEStatement> b, IEGeneric PCRightVal, IEGeneric expectedReturnAddress) Can be overridden by implementors when complex return expression matching is needed.AbstractConverter.normalizeBranchingExpression
(IDFA<IEStatement> dfa, BasicBlock<IEStatement> b, IEGeneric target, IEGeneric expectedTarget) IEConverter.normalizeBranchingExpression
(IDFA<IEStatement> dfa, BasicBlock<IEStatement> b, IEGeneric callsite, IEGeneric expectedTarget) Normalize a branching expression.protected void
AbstractConverter.postBlockConversion
(CFG<InsnType> cfg, BasicBlock<InsnType> b, List<IEStatement> interlist, int cnt) This method is called afterAbstractConverter.convertBlock(BasicBlock, List)
is called.protected BasicBlock<InsnType>
AbstractConverter.preBlockConversion
(CFG<InsnType> cfg, BasicBlock<InsnType> b, List<IEStatement> interlist) This method is called beforeAbstractConverter.convertBlock(BasicBlock, List)
is called. -
Uses of BasicBlock in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir
Fields in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir declared as BasicBlockMethods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir with parameters of type BasicBlockModifier and TypeMethodDescriptionstatic Boolean
EUtil.checkCallReturnAddress
(IERoutineContext ctx, CFG<IEStatement> cfg, BasicBlock<IEStatement> b, int insnIndex) static boolean
EUtil.isAssignedIn
(BasicBlock<IEStatement> bb, IEGeneric checkedDst) Check that an IRE is assigned in a basic block.static boolean
EUtil.isTrampoline
(BasicBlock<IEStatement> bb) -
Uses of BasicBlock in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt with parameters of type BasicBlockModifier and TypeMethodDescriptionprotected boolean
AbstractEOptimizer.deleteUnreachableTrampoline
(BasicBlock<IEStatement> b) protected abstract int
AbstractEBlockOptimizer.optimizeBlock
(BasicBlock<IEStatement> b) Attempt to optimize a basic block.