Uses of Class
com.pnfsoftware.jeb.core.units.code.android.controlflow.CFG
Packages that use CFG
Package
Description
Types related to JEB code plugins, including disassemblers, decompilers, and debuggers.
Control flow graph classes used by the Android components, including
dexdec.Types representing Dex structures and Dalvik code.
This package contains types used to publicly access and manipulate JEB's DEX Decompiler (referred
to as
dexdec) Intermediate Representation (IR) objects.Helpers used to compile, match, and replace dexdec IR expression patterns.
-
Uses of CFG in com.pnfsoftware.jeb.core.units.code
Constructors in com.pnfsoftware.jeb.core.units.code with parameters of type CFGModifierConstructorDescriptionBlockGroup(CFG<? extends IInstruction> cfg, long blkoffStart, long blkoffStopper) Create a block group.RegionFinder(CFG<? extends IInstruction> cfg, long entry, long output) Build a finder for a region having a single output, for which the region blocks cannot loop back to the entry.RegionFinder(CFG<? extends IInstruction> cfg, long entry, Set<Long> outputs, boolean canLoopBackToEntry) Build a region finder. -
Uses of CFG in com.pnfsoftware.jeb.core.units.code.android.controlflow
Methods in com.pnfsoftware.jeb.core.units.code.android.controlflow that return CFGModifier and TypeMethodDescriptionAbstractGraphReorganizer.getReorganizedCfg()Retrieve a CFG reorganized byAbstractGraphReorganizer.reorder(int[]).AbstractGraphReorganizer.reorder(int[] newOrder) Reorder the basic blocks of the CFG.Constructors in com.pnfsoftware.jeb.core.units.code.android.controlflow with parameters of type CFG -
Uses of CFG in com.pnfsoftware.jeb.core.units.code.android.dex
Methods in com.pnfsoftware.jeb.core.units.code.android.dex that return CFGModifier and TypeMethodDescriptionIDexCodeItem.getControlFlowGraph()Returns the CFG for this method. -
Uses of CFG in com.pnfsoftware.jeb.core.units.code.android.ir
Fields in com.pnfsoftware.jeb.core.units.code.android.ir declared as CFGModifier and TypeFieldDescriptionAbstractDOptimizer.cfgTarget method's IR CFG, set up for convenience (seeIDMethodContext.getCfg())Methods in com.pnfsoftware.jeb.core.units.code.android.ir that return CFGModifier and TypeMethodDescriptionstatic CFG<IDInstruction> DUtil.copyGraph(CFG<IDInstruction> cfg, boolean deepCopy, IDMethodContext newContext) Copy an IR-CFG.IDMethodContext.getCfg()Get the current IR (intermediate representation) CFG of the decompiled method.DExecutionParameters.getCFG()Get the CFG being emulated.Methods in com.pnfsoftware.jeb.core.units.code.android.ir with parameters of type CFGModifier and TypeMethodDescriptionstatic intDUtil.checkSequence(CFG<IDInstruction> cfg, int blkindex, DOpcodeType... opcodes) Check for instruction matching in a sequence of blocks.static CFG<IDInstruction> DUtil.copyGraph(CFG<IDInstruction> cfg, boolean deepCopy, IDMethodContext newContext) Copy an IR-CFG.static voidDUtil.dump(CFG<IDInstruction> cfg, String filename) Dump an IR-CFG to a Graphvizdotfile in the user's temporary folder.static voidDUtil.dump(CFG<IDInstruction> cfg, String filename, String title) Dump an IR-CFG to a Graphvizdotfile in the user's temporary folder.static Collection<BasicBlock<IDInstruction>> DUtil.getReachableBlocks(CFG<IDInstruction> cfg) Get the list of reachable blocks of the provided IR-CFG.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 intDUtil.removeGaps(CFG<IDInstruction> cfg) Remove all gaps from the provided IR-CFG.static intDUtil.removeUnreachableBlocks(CFG<IDInstruction> cfg, IDTryData ex) Remove unreachable blocks from an IR-CFG.static booleanDUtil.removeUnreachableTrampoline(CFG<IDInstruction> cfg, BasicBlock<IDInstruction> b) Remove an unreachable trampoline block (ending on a JCOND or JUMP).voidIDMethodContext.replace(CFG<IDInstruction> replCfg, IDTryData replExdata) Replace the current IR by a new CFG and exception information.voidIDMethodContext.replaceCFG(CFG<IDInstruction> cfg2, Map<Integer, Integer> oldToNewOffsets) Replace the current IR by a new CFG and exception information.static booleanDUtil.unprotectBlock(CFG<IDInstruction> cfg, IDTryData exdata, int blkAddress) Unprotect a basic block.static voidDUtil.verifyDataFlow(CFG<IDInstruction> cfg) Perform data flow verifications on the graph.static voidDUtil.verifyGraph(IDMethodContext ctx, CFG<IDInstruction> cfg, IDTryData exdata, String dumpFilename, String info) Verify an IR-CFG.static intDUtil.verifyUnicity(CFG<IDInstruction> cfg) Verify IR unicity within a full graph.Constructors in com.pnfsoftware.jeb.core.units.code.android.ir with parameters of type CFGModifierConstructorDescriptionCreate an object, ready to emulate an entire IR routine.DExecutionParameters(CFG<IDInstruction> cfg, IDTryData exdata) Create an object, ready to emulate an entire IR routine. -
Uses of CFG in com.pnfsoftware.jeb.core.units.code.android.ir.compiler
Methods in com.pnfsoftware.jeb.core.units.code.android.ir.compiler that return CFGModifier and TypeMethodDescriptionDPatternMatcher.Result.getCfg()Retrieve the input control-flow graph.DPatternMatcher.getInputCfg()Retrieve the input control-flow graph.Constructors in com.pnfsoftware.jeb.core.units.code.android.ir.compiler with parameters of type CFGModifierConstructorDescriptionDPatternMatcher(DPatternCompiler.DPattern pattern, CFG<IDInstruction> cfg, IDMethodContext ctx) Create a matcher for a control-flow graph.