Package sootup.apk.frontend.main
Class DexBody
java.lang.Object
sootup.apk.frontend.main.DexBody
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionprotected ClassType
protected DanglingInstruction
protected List<DeferableInstruction>
protected final org.jf.dexlib2.iface.MultiDexContainer.DexEntry
protected Map<Integer,
DexLibAbstractInstruction> protected List<DexLibAbstractInstruction>
protected boolean
protected final org.jf.dexlib2.iface.Method
protected int
protected int
protected Local[]
protected Local
protected List<? extends org.jf.dexlib2.iface.TryBlock<? extends org.jf.dexlib2.iface.ExceptionHandler>>
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
void
addBranchingStmt
(BranchingStmt branchingStmt, List<Stmt> stmt) void
convertMultimap
(com.google.common.collect.LinkedListMultimap<BranchingStmt, List<Stmt>> multimap) protected void
extractDexInstructions
(org.jf.dexlib2.iface.MethodImplementation code) protected String
freshLocalName
(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.void
insertAfter
(Stmt tobeInserted, Stmt afterThisStmt) void
insertBefore
(Stmt tobeInserted, Stmt beforeThisStmt) instructionAtAddress
(int address) instructionsBefore
(DexLibAbstractInstruction instruction) void
jimplify()
makeSootMethod
(org.jf.dexlib2.iface.Method method, ClassType classType, List<BodyInterceptor> bodyInterceptors, View view) void
replaceStmt
(Stmt toBeReplaced, Stmt newStmt) void
toString()
-
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
-