Uses of Interface
com.pnfsoftware.jeb.core.units.code.android.ir.IDExpression
Packages that use IDExpression
Package
Description
This package and sub-packages contain all types used by Android code analysis plugins.
This package contains types used to publicly access and manipulate JEB's DEX Decompiler (referred
to as
dexdec
) Intermediate Representation (IR) objects.Types used to manipulate
dexdec
-generated (Dex decompiler) Java Abstract Syntax Tree
(AST) objects.-
Uses of IDExpression in com.pnfsoftware.jeb.core.units.code.android
Method parameters in com.pnfsoftware.jeb.core.units.code.android with type arguments of type IDExpressionModifier and TypeMethodDescriptionIEmulatedAndroid.invokeMethod
(DInvokeType invoketype, String msig, List<IDExpression> args) Convenience method wrapping around thedex emulator
to emulate a method. -
Uses of IDExpression in com.pnfsoftware.jeb.core.units.code.android.ir
Subinterfaces of IDExpression in com.pnfsoftware.jeb.core.units.code.android.irModifier and TypeInterfaceDescriptioninterface
interface
dexdec
IR array element.interface
interface
dexdec
IR generic interface for field elements, that is, static fields and instance fields.interface
This dual-purposedexdec
IR element serves to encode immediate values (primitives and pooled strings) andevaluated
values (primitives and objects).interface
dexdec
IR instance field.interface
dexdec
IR instruction object.interface
dexdec
IR generic interface holding invocation information forIDCallInfo
,IDNewInfo
,IDNewArrayInfo
,IDAllocObjectInfo
.interface
dexdec
IR element holdingnew
array creation information.interface
interface
dexdec
IR operation expression.interface
dexdec
IR reference type object.interface
dexdec
IR static field, including a type'sclass
pseudo-attribute.interface
dexdec
IR interface used to represent a variable (a.k.a.Fields in com.pnfsoftware.jeb.core.units.code.android.ir with type parameters of type IDExpressionModifier and TypeFieldDescriptionDCopyOptions.replmap_eq
Replacement by equality.DCopyOptions.replmap_eq
Replacement by equality.DCopyOptions.replmap_id
Replacement by identity.DCopyOptions.replmap_id
Replacement by identity.Methods in com.pnfsoftware.jeb.core.units.code.android.ir with type parameters of type IDExpressionModifier and TypeMethodDescription<T extends IDExpression>
TIDExpression.findByType
(Class<T> clazz) Find the first child element by type.<T extends IDExpression>
TIDExpression.findByType
(Class<T> clazz, int start) Find a child element by type.Methods in com.pnfsoftware.jeb.core.units.code.android.ir that return IDExpressionModifier and TypeMethodDescriptionIDExpression.copy
(DCopyOptions opt) IDExpression.duplicate()
IDExpression.findParent
(IDExpression elt) Find the parent of the first instance of the provided child element.IDExpression.findParent
(IDExpression elt, int start) Find the parent of the the provided child element.IDCallInfo.getArgument
(int index) Retrieve a method's argument.IDArrayElt.getArray()
Get the array element's array expression.IDInstruction.getAssignDestination()
IDInstruction.getAssignSource()
IDOperation.getCondFalseExpression()
If this IR is a conditional operation, retrieve the conditional's true expression.IDOperation.getCondPredicate()
If this IR is a conditional operation, retrieve the conditional's predicate.IDOperation.getCondTrueExpression()
If this IR is a conditional operation, retrieve the conditional's true expression.DTypeInfo.TypingConlict.getExpression()
IDArrayElt.getIndex()
Get the array element's index expression.IDNewArrayInfo.getInitialValue
(int index) IDInstanceField.getInstance()
Retrieve the field instance expression, that is, the expression representing the object containing this field.IDInstruction.getJcondCondition()
Get the condition predicate (if the instruction is a JCOND).IDOperation.getLeft()
default IDExpression
IDOperation.getOperand1()
Retrieve the first operand.default IDExpression
IDOperation.getOperand2()
Retrieve the second operand.IDInstruction.getReturnExpression()
IDOperation.getRight()
IDNewArrayInfo.getSize()
IDInstruction.getSwitchExpression()
IDInstruction.getThrowExpression()
DCopyOptions.onDup
(IDExpression e) This method is called byIDElement.copy(DCopyOptions)
to provide customized 'duplication'.IDInstruction.setAssignDestination
(IDExpression dst) IDInstruction.setAssignSource
(IDExpression src) IDInstruction.setJcondCondition
(IDExpression cond) IDInstruction.setReturnExpression
(IDExpression exp) IDInstruction.setSwitchExpression
(IDExpression exp) IDInstruction.setThrowExpression
(IDExpression exp) Methods in com.pnfsoftware.jeb.core.units.code.android.ir that return types with arguments of type IDExpressionModifier and TypeMethodDescriptionIDExpression.find
(IDExpression elt, int start, int comparisonMethod, IDExpression thisParent) Find the parent of the the provided child element.IDExpression.find
(IDExpression elt, int start, int comparisonMethod, IDExpression thisParent) Find the parent of the the provided child element.IDInvokeInfo.getArguments()
Get the list of invocation arguments (including this for non-static methods).IDNewArrayInfo.getInitialValues()
default List<IDExpression>
IDExpression.getSubExpressions()
Convenience method used to retrieve all the sub-expressions of this IR, in evaluation order.Methods in com.pnfsoftware.jeb.core.units.code.android.ir with parameters of type IDExpressionModifier and TypeMethodDescriptionstatic int
DUtil.calculateComplexity
(IDExpression e) Calculate the trivial complexity metric for the provided IR expression.DUtil.collectUniqueVarIds
(IDExpression e) Collect the unique list of variable ids making up this expression, including the expression itself if is anIDVar
.DUtil.collectVars
(IDExpression e) Collect all thevariables
making up this expression, including the expression itself if is a variable.static int
DUtil.countVariable
(IDExpression e, IDVar var) Count the number of occurrences of a given variable in the provided IR expression.IDGlobalContext.createArrayElt
(IDExpression array, IDExpression index, IJavaType type) Create an array element.default IDArrayElt
IDMethodContext.createArrayElt
(IDExpression array, IDExpression index, IJavaType type) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext()
.IDGlobalContext.createArrayLength
(IDExpression instance) default IDInstanceField
IDMethodContext.createArrayLength
(IDExpression instance) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext()
.IDMethodContext.createAssign
(IDExpression dst, IDExpression src) Create anassignment
instruction.IDGlobalContext.createCallInfo
(IDIndex methodindex, IDExpression[] arguments, IJavaType returntype, String methodsig, DInvokeType invoketype) default IDCallInfo
IDMethodContext.createCallInfo
(IDIndex methodindex, IDExpression[] arguments, IJavaType returntype, String methodsig, DInvokeType invoketype) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext()
.default IDOperation
IDMethodContext.createCast
(IJavaType casttype, IDExpression e) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext()
.IDGlobalContext.createCastOperation
(IJavaType castType, IDExpression exp) Create a cast operation.IDGlobalContext.createCastOperation
(String castTypeSignature, IDExpression exp) Create a cast operation.IDGlobalContext.createConditional
(IJavaType type, IDExpression pred, IDExpression expTrue, IDExpression expFalse) Convenience operation.default IDOperation
IDMethodContext.createConditional
(IJavaType type, IDExpression pred, IDExpression expTrue, IDExpression expFalse) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext()
.IDGlobalContext.createInstanceField
(IDExpression instance, IDexField f) IDGlobalContext.createInstanceField
(IDExpression instance, IDIndex index, IJavaType fieldtype, String fieldname) IDGlobalContext.createInstanceField
(IDExpression instance, String fsig) IDGlobalContext.createInstanceField
(IDExpression instance, String fsig, boolean createRefIfDoesNotExist) default IDInstanceField
IDMethodContext.createInstanceField
(IDExpression instance, IDIndex index, IJavaType fieldtype, String fieldname) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext()
.IDMethodContext.createJcond
(int irTargetOffset, IDExpression cond) Create ajcond
(conditional jump) instruction.IDMethodContext.createMonitorEnter
(IDExpression exp) Create amonitor-enter
instruction.IDMethodContext.createMonitorExit
(IDExpression exp) Create amonitor-exit
instruction.IDGlobalContext.createNewArrayInfo
(IJavaType type, IDExpression size, List<IDExpression> initvals) default IDNewArrayInfo
IDMethodContext.createNewArrayInfo
(IJavaType type, IDExpression size, List<IDExpression> initvals) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext()
.IDGlobalContext.createNewInfo
(IJavaType objecttype, IJavaType constclasstype, IDIndex constructorindex, IDExpression[] arguments, String methodsig) IDGlobalContext.createNewInfo
(String constructorSig, IDExpression... arguments) Convenience method to create anew SomeObject(..)
operand.default IDNewInfo
IDMethodContext.createNewInfo
(IJavaType objecttype, IJavaType constclasstype, IDIndex constructorindex, IDExpression[] arguments, String methodsig) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext()
.default IDNewInfo
IDMethodContext.createNewInfo
(String constructorSig, IDExpression... arguments) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext()
.IDGlobalContext.createOperation
(IJavaType type, IDExpression left, IJavaOperator operator, IDExpression right) Create an operation element, such an an arithmetic or bitwise expression, conditional, string concatenation, or cast operation.IDGlobalContext.createOperation
(IJavaType type, JavaOperatorType optype, IDExpression opnd1, IDExpression opnd2) Create an operation element with at most two operands, such an an arithmetic or bitwise expression, string concatenation, or cast operation.default IDOperation
IDMethodContext.createOperation
(IJavaType type, IDExpression left, IJavaOperator operator, IDExpression right) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext()
.default IDOperation
IDMethodContext.createOperation
(IJavaType type, JavaOperatorType optype, IDExpression opnd1, IDExpression opnd2) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext()
.IDGlobalContext.createPredicate
(IDExpression left, IJavaOperator operator, IDExpression right) Create a predicate operation (typed boolean).IDGlobalContext.createPredicate
(JavaOperatorType optype, IDExpression opnd1, IDExpression opnd2) Create a predicate operation (typed boolean).default IDOperation
IDMethodContext.createPredicate
(IDExpression left, IJavaOperator operator, IDExpression right) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext()
.default IDOperation
IDMethodContext.createPredicate
(JavaOperatorType optype, IDExpression opnd1, IDExpression opnd2) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext()
.IDMethodContext.createReturn
(IDExpression exp) Create areturn
instruction.IDMethodContext.createSwitch
(IDExpression swexp, IDSwitchData data) Create aswitch
instruction.IDMethodContext.createThrow
(IDExpression exp) Create athrow
instruction.IDExpression.find
(IDExpression elt, int start, int comparisonMethod, IDExpression thisParent) Find the parent of the the provided child element.IDExpression.findParent
(IDExpression elt) Find the parent of the first instance of the provided child element.IDExpression.findParent
(IDExpression elt, int start) Find the parent of the the provided child element.static String
DUtil.generateNativeAddress
(IDMethodContext ctx, IDExpression elt) static ICodeCoordinates
DUtil.generateNativeCoordinates
(IDMethodContext ctx, IDExpression elt) static boolean
DUtil.hasInvokeInfo
(IDExpression e) Determine whether the IR expression makes invocations (general invocations, new, new-array).static boolean
DUtil.hasVariable
(IDExpression e, int varid) Determine whether the provided expression is or contains the provided variable.static boolean
DUtil.hasVariables
(IDExpression e) Determine whether the provided expression containsvariables
.IDState.invokeMethod
(DInvokeType invokeType, String methodSignature, IDExpression... methodParameters) Invoke (execute) a method.static boolean
DUtil.isImmNonZero
(IDExpression exp) Determine if an expression is an IR immediate not holding the value 0.static boolean
DUtil.isImmValue
(IDExpression exp, long value) Determine if an expression is an IR immediate holding the provided value.static boolean
DUtil.isImmZero
(IDExpression exp) Determine if an expression is an IR immediate holding the value 0.DCopyOptions.onDup
(IDExpression e) This method is called byIDElement.copy(DCopyOptions)
to provide customized 'duplication'.void
DTypeInfo.recordConflict
(String msg, IDExpression exp, IJavaType currentType, IJavaType wantedType) int
IDInstruction.replaceDefinedVariable
(IDVar var, IDExpression repl) Replace the variable defined by this statement (if there is any).static boolean
DUtil.replaceInExpression
(IDExpression e, IDExpression target, IDExpression repl) Replace an IR expression located inside another IR.boolean
IDExpression.replaceSubExpression
(IDExpression target, IDExpression repl) Replace an expression of this IR.int
IDInstruction.replaceUsedVariable
(IDVar var, IDExpression repl) Deep replace all matching used variables of this instruction.int
IDExpression.replaceVariable
(IDVar var, IDExpression repl) Deep replace all matching variables by the provided expression.void
IDCallInfo.setArgument
(int i, IDExpression arg) Update a method argument.IDInstruction.setAssignDestination
(IDExpression dst) IDInstruction.setAssignSource
(IDExpression src) void
IDOperation.setCondPredicate
(IDExpression pred) void
IDNewArrayInfo.setInitialValue
(int index, IDExpression val) IDInstruction.setJcondCondition
(IDExpression cond) void
IDOperation.setLeft
(IDExpression exp) default void
IDOperation.setOperand1
(IDExpression exp) Set the first operand.default void
IDOperation.setOperand2
(IDExpression exp) Set the second operand.IDInstruction.setReturnExpression
(IDExpression exp) void
IDOperation.setRight
(IDExpression exp) void
IDNewArrayInfo.setSize
(IDExpression size) IDInstruction.setSwitchExpression
(IDExpression exp) IDInstruction.setThrowExpression
(IDExpression exp) void
IDExpression.transferMetadataFrom
(IDExpression srcExp) Transfer (shallow copy) metadata from a source IR to this IR.static boolean
DUtil.usesReferences
(IDExpression e) Determine whether the IR expression uses references, defined as any of: accessing fields, accessing array elements, creating arrays.static int
DUtil.verifyUnicity
(IDExpression exp) Verify IR unicity within an expression.boolean
IDExpression.visitDepthPost
(IDVisitor visitor, IDExpression parent) Visit this expression and its constituents, depth-first post-order.boolean
IDExpression.visitDepthPost
(IDVisitor visitor, IDExpression parent, DVisitResults results) Visit this expression and its constituents, depth-first post-order.boolean
IDExpression.visitDepthPre
(IDVisitor visitor, IDExpression parent) Visit this expression and its constituents, depth-first pre-order.boolean
IDExpression.visitDepthPre
(IDVisitor visitor, IDExpression parent, DVisitResults results) Visit this expression and its constituents, depth-first pre-order.Method parameters in com.pnfsoftware.jeb.core.units.code.android.ir with type arguments of type IDExpressionModifier and TypeMethodDescriptionvoid
IDExpression.collectSubExpressions
(List<IDExpression> sink) Collect all sub-expressions of this expression, in evaluation order.IDGlobalContext.createCallInfo
(DInvokeType invoketype, int methodindex, List<IDExpression> arguments) IDGlobalContext.createCallInfo
(DInvokeType invoketype, String msig, List<IDExpression> arguments) IDGlobalContext.createCallInfo
(IDIndex methodindex, List<IDExpression> arguments, IJavaType returntype, String methodsig, DInvokeType invoketype) default IDCallInfo
IDMethodContext.createCallInfo
(DInvokeType invoketype, int methodindex, List<IDExpression> arguments) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext()
.default IDCallInfo
IDMethodContext.createCallInfo
(IDIndex methodindex, List<IDExpression> arguments, IJavaType returntype, String methodsig, DInvokeType invoketype) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext()
.IDGlobalContext.createNewArrayInfo
(IJavaType type, IDExpression size, List<IDExpression> initvals) default IDNewArrayInfo
IDMethodContext.createNewArrayInfo
(IJavaType type, IDExpression size, List<IDExpression> initvals) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext()
.IDGlobalContext.createNewInfo
(IJavaType objecttype, IJavaType constclasstype, IDIndex constructorindex, List<IDExpression> arguments, String methodsig) default IDNewInfo
IDMethodContext.createNewInfo
(IJavaType objecttype, IJavaType constclasstype, IDIndex constructorindex, List<IDExpression> arguments, String methodsig) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext()
.IDState.createNewInstance
(String constructorSignature, Collection<IDExpression> constructorParameters) Create a new instance of an object.IDState.executeDexMethod
(IDexMethod m, List<IDExpression> args) Execute (emulate) an IR method within a new context.IDState.invokeMethod
(String methodSignature, Collection<IDExpression> methodParameters, DInvokeType invokeType) Invoke (execute) a method.void
IDNewArrayInfo.setInitialValues
(List<IDExpression> initvals) Constructors in com.pnfsoftware.jeb.core.units.code.android.ir with parameters of type IDExpressionModifierConstructorDescriptionThis constructor usesDexDecEvaluationException(String)
with a string containing a textual representation of the provided IR expression.TypingConlict
(String msg, IDExpression exp, IJavaType currentType, IJavaType wantedType) -
Uses of IDExpression in com.pnfsoftware.jeb.core.units.code.java
Methods in com.pnfsoftware.jeb.core.units.code.java with parameters of type IDExpressionModifier and TypeMethodDescriptionvoid
IJavaType.formatArray
(DFormattingContext fctx, IDExpression dim0)