Uses of Class
com.pnfsoftware.jeb.core.units.code.android.controlflow.BasicBlock
Packages that use BasicBlock
Package
Description
Control flow graph classes used by the Android components, including
dexdec.This package contains types used to publicly access and manipulate JEB's DEX Decompiler (referred
to as
dexdec) Intermediate Representation (IR) objects.Specific types used by Dex units to render Dex disassembly code.
-
Uses of BasicBlock in com.pnfsoftware.jeb.core.units.code.android.controlflow
Methods in com.pnfsoftware.jeb.core.units.code.android.controlflow 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.getBlockFor(InsnType insn) Search an instruction by reference.CFG.getEntryBlock()BasicBlock.getInputBlock(int index) BasicBlock.getIrregularInputBlock(int index) BasicBlock.getIrregularOutputBlock(int index) CFG.getLast()BasicBlock.getOutputBlock(int index) CFG.splitBlock(BasicBlock<InsnType> b, int index) Split a block into two blocks.Methods in com.pnfsoftware.jeb.core.units.code.android.controlflow 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(long address, boolean precise) Locate an instruction.BasicBlock.getIrregularInputBlocks()BasicBlock.getIrregularInputs()Retrieve a read-only list of irregular input blocks.BasicBlock.getIrregularOutputBlocks()BasicBlock.getIrregularOutputs()Retrieve a read-only list of irregular output blocks.BasicBlock.getOutputBlocks()BasicBlock.getOutputs()Retrieve a read-only list of output blocks (regular).CFG.handlers()CFG.iterator()Methods in com.pnfsoftware.jeb.core.units.code.android.controlflow with parameters of type BasicBlockModifier and TypeMethodDescriptionvoidCFG.addBlock(int index, BasicBlock<InsnType> b) Insert a block, does nothing else.voidCFG.addBlock(BasicBlock<InsnType> b) Add a block, does nothing else.booleanCFG.addEdge(BasicBlock<InsnType> x, BasicBlock<InsnType> y) Append an out-edge.intCFG.addEdge(BasicBlock<InsnType> x, BasicBlock<InsnType> y, int index) Add an out-edge.booleanCFG.addIrregularEdge(BasicBlock<InsnType> x, BasicBlock<InsnType> y) Connect (irregularly) a source block to destination block.intCFG.addIrregularEdge(BasicBlock<InsnType> x, BasicBlock<InsnType> y, int index) Connect (irregularly) a source block to destination block.booleanCFG.deleteEdge(BasicBlock<InsnType> x, BasicBlock<InsnType> y) Delete an edge x->y.intCFG.deleteEdge(BasicBlock<InsnType> x, BasicBlock<InsnType> y, int xToYPos) Delete an edge x->y.intCFG.deleteEdges(BasicBlock<InsnType> x, BasicBlock<InsnType> y) booleanCFG.deleteIrregularEdge(BasicBlock<InsnType> x, BasicBlock<InsnType> y) Delete an irregular edge x->y.intCFG.deleteIrregularEdge(BasicBlock<InsnType> x, BasicBlock<InsnType> y, int xToYPos) Delete an irregular edge x->y.intCFG.deleteIrregularEdges(BasicBlock<InsnType> x, BasicBlock<InsnType> y) voidDelete all irregular output edges for the provided block.voidCFG.deleteOutEdges(BasicBlock<InsnType> b) Delete all regular output edges for the provided block.intCFG.indexOf(BasicBlock<InsnType> b) intCFG.reconnectEdge(BasicBlock<InsnType> x, BasicBlock<InsnType> y, BasicBlock<InsnType> z) This method reconnects a block x from y to z, i.e.intCFG.reconnectEdge(BasicBlock<InsnType> x, BasicBlock<InsnType> y, BasicBlock<InsnType> z, Integer xToYPos) This method reconnects a block x from y to z, i.e.intCFG.reconnectEdges(BasicBlock<InsnType> x, BasicBlock<InsnType> y, BasicBlock<InsnType> z) intCFG.reconnectIrregularEdge(BasicBlock<InsnType> x, BasicBlock<InsnType> y, BasicBlock<InsnType> z) This method irregularly reconnects a block x from y to z, i.e.intCFG.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.intCFG.reconnectIrregularEdges(BasicBlock<InsnType> x, BasicBlock<InsnType> y, BasicBlock<InsnType> z) voidCFG.removeBlock(BasicBlock<InsnType> b) Remove a block (preferably empty) and update the fixtures.booleanCFG.removeBlockSafe(BasicBlock<InsnType> b) Remove a block (preferably empty) and update the fixtures.intCFG.removeDuplicateEdges(BasicBlock<InsnType> x, BasicBlock<InsnType> y) Remove duplicate edges (regular) from a source block to a destination block.intRemove duplicate irregular edges from a source block to a destination block.CFG.splitBlock(BasicBlock<InsnType> b, int index) Split a block into two blocks. -
Uses of BasicBlock in com.pnfsoftware.jeb.core.units.code.android.ir
Methods in com.pnfsoftware.jeb.core.units.code.android.ir that return BasicBlockModifier and TypeMethodDescriptionstatic BasicBlock<IDInstruction>DUtil.splitBlock(IDMethodContext ctx, BasicBlock<IDInstruction> blk, int index) Split a block of the context's CFG into two blocks.Methods in com.pnfsoftware.jeb.core.units.code.android.ir that return types with arguments of type BasicBlockModifier and TypeMethodDescriptionstatic Collection<BasicBlock<IDInstruction>>DUtil.determineInterval(BasicBlock<IDInstruction> hdrblk) Find the graph interval rooted in the provided header block.static Collection<BasicBlock<IDInstruction>>DUtil.getReachableBlocks(CFG<IDInstruction> cfg) Get the list of reachable blocks of the provided IR-CFG.Methods in com.pnfsoftware.jeb.core.units.code.android.ir with parameters of type BasicBlockModifier and TypeMethodDescriptionstatic booleanDUtil.canThrow(BasicBlock<IDInstruction> b, int from) Determine whether the trailing instructions of a block can throw.static booleanDUtil.canThrow(BasicBlock<IDInstruction> b, int from, int to) Determine whether a provided range of instructions of a block can throw.static booleanDUtil.checkBlock(BasicBlock<IDInstruction> b, DOpcodeType... opcodes) Check for instruction matching in the provided block.static Collection<BasicBlock<IDInstruction>>DUtil.determineInterval(BasicBlock<IDInstruction> hdrblk) Find the graph interval rooted in the provided header block.static booleanDUtil.isProtectedByCatchAll(IDMethodContext ctx, BasicBlock<IDInstruction> blk) Determine whether the provided block is protected by acatch-all(catching Throwable).static booleanDUtil.isUsingCaughtException(IDMethodContext ctx, BasicBlock<IDInstruction> b) static booleanDUtil.mergeBlocks(IDMethodContext ctx, BasicBlock<IDInstruction> firstBlock) Merge two blocks.static IDInstructionDUtil.nextInstruction(CFG<IDInstruction> cfg, BasicBlock<IDInstruction> b, int i) Determine the meaningful next instruction in the execution flow, assuming no exception was raised.static booleanDUtil.removeInstruction(BasicBlock<IDInstruction> b, int idx) Remove an instruction in a block.static booleanDUtil.removeUnreachableTrampoline(CFG<IDInstruction> cfg, BasicBlock<IDInstruction> b) Remove an unreachable trampoline block (ending on a JCOND or JUMP).static BasicBlock<IDInstruction>DUtil.splitBlock(IDMethodContext ctx, BasicBlock<IDInstruction> blk, int index) Split a block of the context's CFG into two blocks. -
Uses of BasicBlock in com.pnfsoftware.jeb.core.units.code.android.render
Methods in com.pnfsoftware.jeb.core.units.code.android.render with parameters of type BasicBlockModifier and TypeMethodDescriptionIDexItemToAnchor.fromInstruction(IDexMethod m, BasicBlock<IDalvikInstruction> b) Convert the first instruction of aBasicBlockof anIDexMethodto its anchor id.