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>> @NonNull IdentifierFactoryTheIdentifierFactoryof the view this body is converted for.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
-
-
Method Details
-
getBranchingMap
-
addDeferredJimplification
-
getIdentifierFactory
TheIdentifierFactoryof the view this body is converted for. -
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
-