Package sootup.apk.frontend.main
Class DexBody
java.lang.Object
sootup.apk.frontend.main.DexBody
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ClassTypeprotected DanglingInstructionprotected List<DeferableInstruction>protected final org.jf.dexlib2.iface.MultiDexContainer.DexEntryprotected Map<Integer,DexLibAbstractInstruction> protected List<DexLibAbstractInstruction>protected booleanprotected final org.jf.dexlib2.iface.Methodprotected intprotected intprotected Local[]protected Localprotected List<? extends org.jf.dexlib2.iface.TryBlock<? extends org.jf.dexlib2.iface.ExceptionHandler>> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidaddBranchingStmt(BranchingStmt branchingStmt, List<Stmt> stmt) voidconvertMultimap(com.google.common.collect.LinkedListMultimap<BranchingStmt, List<Stmt>> multimap) protected voidextractDexInstructions(org.jf.dexlib2.iface.MethodImplementation code) protected StringfreshLocalName(String hint) com.google.common.collect.LinkedListMultimap<BranchingStmt,List<Stmt>> getRegisterLocal(int num) Return the Local that are associated with the number in the current register state.voidinsertAfter(Stmt tobeInserted, Stmt afterThisStmt) voidinsertBefore(Stmt tobeInserted, Stmt beforeThisStmt) instructionAtAddress(int address) instructionsBefore(DexLibAbstractInstruction instruction) voidjimplify()makeSootMethod(org.jf.dexlib2.iface.Method method, ClassType classType, List<BodyInterceptor> bodyInterceptors, View view) voidreplaceStmt(Stmt toBeReplaced, Stmt newStmt) voidtoString()
-
Field Details
-
numRegisters
protected int numRegisters -
numParameterRegisters
protected int numParameterRegisters -
parameterNames
-
isStatic
protected boolean isStatic -
tries
protected List<? extends org.jf.dexlib2.iface.TryBlock<? extends org.jf.dexlib2.iface.ExceptionHandler>> tries -
deferredInstructions
-
method
protected final org.jf.dexlib2.iface.Method method -
locals
-
parameterTypes
-
takenLocalNames
-
registerLocals
-
storeResultLocal
-
dexEntry
protected final org.jf.dexlib2.iface.MultiDexContainer.DexEntry dexEntry -
instructionAtAddress
-
instructions
-
dangling
-
classType
-
traps
-
-
Constructor Details
-
DexBody
public DexBody(org.jf.dexlib2.iface.Method method, org.jf.dexlib2.iface.MultiDexContainer.DexEntry dexEntry, ClassType classType)
-
-
Method Details
-
getBranchingMap
-
addDeferredJimplification
-
instructionAtAddress
-
getStoreResultLocal
-
add
-
addBranchingStmt
-
insertAfter
-
replaceStmt
-
extractDexInstructions
protected void extractDexInstructions(org.jf.dexlib2.iface.MethodImplementation code) -
instructionsBefore
-
getRegisterLocal
Return the Local that are associated with the number in the current register state.Handles if the register number actually points to a method parameter.
- Parameters:
num- the register number- Returns:
- the register local present in the given register number
- Throws:
RuntimeException- if there are no registers to access
-
toString
-
makeSootMethod
public JavaSootMethod makeSootMethod(org.jf.dexlib2.iface.Method method, ClassType classType, List<BodyInterceptor> bodyInterceptors, View view) -
convertMultimap
public Map<BranchingStmt,List<Stmt>> convertMultimap(com.google.common.collect.LinkedListMultimap<BranchingStmt, List<Stmt>> multimap) -
jimplify
public void jimplify() -
insertBefore
-
setDanglingInstruction
-
freshLocalName
-