| Package | Description |
|---|---|
| com.android.dx.cf.code |
Implementation of classes having to do with Java simulation, such as
is needed for verification or stack-to-register conversion.
|
| com.android.dx.dex.cf |
Classes for translating Java classfiles into Dalvik classes.
|
| com.android.dx.dex.code | |
| com.android.dx.rop.code |
Classes relating to a register-based opcode system.
|
| com.android.dx.ssa | |
| com.android.dx.ssa.back |
| Modifier and Type | Method and Description |
|---|---|
static RopMethod |
Ropper.convert(ConcreteMethod method,
TranslationAdvice advice,
MethodList methods,
DexOptions dexOptions)
Converts a
ConcreteMethod to a RopMethod. |
| Modifier and Type | Method and Description |
|---|---|
void |
OptimizerOptions.compareOptimizerStep(RopMethod nonOptRmeth,
int paramSize,
boolean isStatic,
CfOptions args,
TranslationAdvice advice,
RopMethod rmeth)
Compares the output of the optimizer run normally with a run skipping
some optional steps.
|
void |
CodeStatistics.updateRopStatistics(RopMethod nonOptRmeth,
RopMethod rmeth)
Updates the ROP statistics.
|
| Modifier and Type | Method and Description |
|---|---|
static CatchTable |
StdCatchBuilder.build(RopMethod method,
int[] order,
BlockAddresses addresses)
Builds and returns the catch table for a given method.
|
static DalvCode |
RopTranslator.translate(RopMethod method,
int positionInfo,
LocalVariableInfo locals,
int paramSize,
DexOptions dexOptions)
Translates a
RopMethod. |
| Constructor and Description |
|---|
BlockAddresses(RopMethod method)
Constructs an instance.
|
StdCatchBuilder(RopMethod method,
int[] order,
BlockAddresses addresses)
Constructs an instance.
|
| Modifier and Type | Method and Description |
|---|---|
RopMethod |
RopMethod.withRegisterOffset(int delta)
Returns an instance that is identical to this one, except that
the registers in each instruction are offset by the given
amount.
|
| Modifier and Type | Method and Description |
|---|---|
static LocalVariableInfo |
LocalVariableExtractor.extract(RopMethod method)
Extracts out all the local variable information from the given method.
|
| Constructor and Description |
|---|
LocalVariableInfo(RopMethod method)
Constructs an instance.
|
| Modifier and Type | Method and Description |
|---|---|
static RopMethod |
Optimizer.optimize(RopMethod rmeth,
int paramWidth,
boolean isStatic,
boolean inPreserveLocals,
TranslationAdvice inAdvice)
Runs optimization algorthims over this method, and returns a new
instance of RopMethod with the changes.
|
static RopMethod |
Optimizer.optimize(RopMethod rmeth,
int paramWidth,
boolean isStatic,
boolean inPreserveLocals,
TranslationAdvice inAdvice,
java.util.EnumSet<Optimizer.OptionalStep> steps)
Runs optimization algorthims over this method, and returns a new
instance of RopMethod with the changes.
|
| Modifier and Type | Method and Description |
|---|---|
static SsaMethod |
SsaConverter.convertToSsaMethod(RopMethod rmeth,
int paramWidth,
boolean isStatic)
Returns an SSA representation, edge-split and with phi
functions placed.
|
static SsaMethod |
Optimizer.debugDeadCodeRemover(RopMethod rmeth,
int paramWidth,
boolean isStatic,
boolean inPreserveLocals,
TranslationAdvice inAdvice) |
static SsaMethod |
Optimizer.debugEdgeSplit(RopMethod rmeth,
int paramWidth,
boolean isStatic,
boolean inPreserveLocals,
TranslationAdvice inAdvice) |
static SsaMethod |
Optimizer.debugNoRegisterAllocation(RopMethod rmeth,
int paramWidth,
boolean isStatic,
boolean inPreserveLocals,
TranslationAdvice inAdvice,
java.util.EnumSet<Optimizer.OptionalStep> steps) |
static SsaMethod |
Optimizer.debugPhiPlacement(RopMethod rmeth,
int paramWidth,
boolean isStatic,
boolean inPreserveLocals,
TranslationAdvice inAdvice) |
static SsaMethod |
Optimizer.debugRenaming(RopMethod rmeth,
int paramWidth,
boolean isStatic,
boolean inPreserveLocals,
TranslationAdvice inAdvice) |
static SsaBasicBlock |
SsaBasicBlock.newFromRop(RopMethod rmeth,
int basicBlockIndex,
SsaMethod parent)
Creates a new SSA basic block from a ROP form basic block.
|
static SsaMethod |
SsaMethod.newFromRopMethod(RopMethod ropMethod,
int paramWidth,
boolean isStatic) |
static RopMethod |
Optimizer.optimize(RopMethod rmeth,
int paramWidth,
boolean isStatic,
boolean inPreserveLocals,
TranslationAdvice inAdvice)
Runs optimization algorthims over this method, and returns a new
instance of RopMethod with the changes.
|
static RopMethod |
Optimizer.optimize(RopMethod rmeth,
int paramWidth,
boolean isStatic,
boolean inPreserveLocals,
TranslationAdvice inAdvice,
java.util.EnumSet<Optimizer.OptionalStep> steps)
Runs optimization algorthims over this method, and returns a new
instance of RopMethod with the changes.
|
static SsaMethod |
SsaConverter.testEdgeSplit(RopMethod rmeth,
int paramWidth,
boolean isStatic)
Returns an SSA represention with only the edge-splitter run.
|
static SsaMethod |
SsaConverter.testPhiPlacement(RopMethod rmeth,
int paramWidth,
boolean isStatic)
Returns an SSA represention with only the steps through the
phi placement run.
|
| Modifier and Type | Method and Description |
|---|---|
static RopMethod |
SsaToRop.convertToRopMethod(SsaMethod ssaMeth,
boolean minimizeRegisters)
Converts a method in SSA form to ROP form.
|
RopMethod |
IdenticalBlockCombiner.process()
Runs algorithm.
|
| Constructor and Description |
|---|
IdenticalBlockCombiner(RopMethod rm)
Constructs instance.
|
Copyright © 2020. All Rights Reserved.