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 emulatorto 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 TypeInterfaceDescriptioninterfaceinterfacedexdecIR array element.interfaceinterfacedexdecIR generic interface for field elements, that is, static fields and instance fields.interfaceThis dual-purposedexdecIR element serves to encode immediate values (primitives and pooled strings) andevaluatedvalues (primitives and objects).interfacedexdecIR instance field.interfacedexdecIR instruction object.interfacedexdecIR generic interface holding invocation information forIDCallInfo,IDNewInfo,IDNewArrayInfo,IDAllocObjectInfo.interfacedexdecIR element holdingnewarray creation information.interfaceinterfacedexdecIR operation expression.interfacedexdecIR reference type object.interfacedexdecIR static field, including a type'sclasspseudo-attribute.interfacedexdecIR 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_eqReplacement by equality.DCopyOptions.replmap_eqReplacement by equality.DCopyOptions.replmap_idReplacement by identity.DCopyOptions.replmap_idReplacement 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 IDExpressionIDOperation.getOperand1()Retrieve the first operand.default IDExpressionIDOperation.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 intDUtil.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 thevariablesmaking up this expression, including the expression itself if is a variable.static intDUtil.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 IDArrayEltIDMethodContext.createArrayElt(IDExpression array, IDExpression index, IJavaType type) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext().IDGlobalContext.createArrayLength(IDExpression instance) default IDInstanceFieldIDMethodContext.createArrayLength(IDExpression instance) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext().IDMethodContext.createAssign(IDExpression dst, IDExpression src) Create anassignmentinstruction.IDGlobalContext.createCallInfo(IDIndex methodindex, IDExpression[] arguments, IJavaType returntype, String methodsig, DInvokeType invoketype) default IDCallInfoIDMethodContext.createCallInfo(IDIndex methodindex, IDExpression[] arguments, IJavaType returntype, String methodsig, DInvokeType invoketype) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext().default IDOperationIDMethodContext.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 IDOperationIDMethodContext.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 IDInstanceFieldIDMethodContext.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-enterinstruction.IDMethodContext.createMonitorExit(IDExpression exp) Create amonitor-exitinstruction.IDGlobalContext.createNewArrayInfo(IJavaType type, IDExpression size, List<IDExpression> initvals) default IDNewArrayInfoIDMethodContext.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 IDNewInfoIDMethodContext.createNewInfo(IJavaType objecttype, IJavaType constclasstype, IDIndex constructorindex, IDExpression[] arguments, String methodsig) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext().default IDNewInfoIDMethodContext.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 IDOperationIDMethodContext.createOperation(IJavaType type, IDExpression left, IJavaOperator operator, IDExpression right) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext().default IDOperationIDMethodContext.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 IDOperationIDMethodContext.createPredicate(IDExpression left, IJavaOperator operator, IDExpression right) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext().default IDOperationIDMethodContext.createPredicate(JavaOperatorType optype, IDExpression opnd1, IDExpression opnd2) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext().IDMethodContext.createReturn(IDExpression exp) Create areturninstruction.IDMethodContext.createSwitch(IDExpression swexp, IDSwitchData data) Create aswitchinstruction.IDMethodContext.createThrow(IDExpression exp) Create athrowinstruction.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 StringDUtil.generateNativeAddress(IDMethodContext ctx, IDExpression elt) static ICodeCoordinatesDUtil.generateNativeCoordinates(IDMethodContext ctx, IDExpression elt) static booleanDUtil.hasInvokeInfo(IDExpression e) Determine whether the IR expression makes invocations (general invocations, new, new-array).static booleanDUtil.hasVariable(IDExpression e, int varid) Determine whether the provided expression is or contains the provided variable.static booleanDUtil.hasVariables(IDExpression e) Determine whether the provided expression containsvariables.IDState.invokeMethod(DInvokeType invokeType, String methodSignature, IDExpression... methodParameters) Invoke (execute) a method.static booleanDUtil.isImmNonZero(IDExpression exp) Determine if an expression is an IR immediate not holding the value 0.static booleanDUtil.isImmValue(IDExpression exp, long value) Determine if an expression is an IR immediate holding the provided value.static booleanDUtil.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'.voidDTypeInfo.recordConflict(String msg, IDExpression exp, IJavaType currentType, IJavaType wantedType) intIDInstruction.replaceDefinedVariable(IDVar var, IDExpression repl) Replace the variable defined by this statement (if there is any).static booleanDUtil.replaceInExpression(IDExpression e, IDExpression target, IDExpression repl) Replace an IR expression located inside another IR.booleanIDExpression.replaceSubExpression(IDExpression target, IDExpression repl) Replace an expression of this IR.intIDInstruction.replaceUsedVariable(IDVar var, IDExpression repl) Deep replace all matching used variables of this instruction.intIDExpression.replaceVariable(IDVar var, IDExpression repl) Deep replace all matching variables by the provided expression.voidIDCallInfo.setArgument(int i, IDExpression arg) Update a method argument.IDInstruction.setAssignDestination(IDExpression dst) IDInstruction.setAssignSource(IDExpression src) voidIDOperation.setCondPredicate(IDExpression pred) voidIDNewArrayInfo.setInitialValue(int index, IDExpression val) IDInstruction.setJcondCondition(IDExpression cond) voidIDOperation.setLeft(IDExpression exp) default voidIDOperation.setOperand1(IDExpression exp) Set the first operand.default voidIDOperation.setOperand2(IDExpression exp) Set the second operand.IDInstruction.setReturnExpression(IDExpression exp) voidIDOperation.setRight(IDExpression exp) voidIDNewArrayInfo.setSize(IDExpression size) IDInstruction.setSwitchExpression(IDExpression exp) IDInstruction.setThrowExpression(IDExpression exp) voidIDExpression.transferMetadataFrom(IDExpression srcExp) Transfer (shallow copy) metadata from a source IR to this IR.static booleanDUtil.usesReferences(IDExpression e) Determine whether the IR expression uses references, defined as any of: accessing fields, accessing array elements, creating arrays.static intDUtil.verifyUnicity(IDExpression exp) Verify IR unicity within an expression.booleanIDExpression.visitDepthPost(IDVisitor visitor, IDExpression parent) Visit this expression and its constituents, depth-first post-order.booleanIDExpression.visitDepthPost(IDVisitor visitor, IDExpression parent, DVisitResults results) Visit this expression and its constituents, depth-first post-order.booleanIDExpression.visitDepthPre(IDVisitor visitor, IDExpression parent) Visit this expression and its constituents, depth-first pre-order.booleanIDExpression.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 TypeMethodDescriptionvoidIDExpression.collectSubExpressions(Collection<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 IDCallInfoIDMethodContext.createCallInfo(DInvokeType invoketype, int methodindex, List<IDExpression> arguments) Convenience IR factory method wrapping aroundIDMethodContext.getGlobalContext().default IDCallInfoIDMethodContext.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 IDNewArrayInfoIDMethodContext.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 IDNewInfoIDMethodContext.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.voidIDNewArrayInfo.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 TypeMethodDescriptionvoidIJavaType.formatArray(DFormattingContext fctx, IDExpression dim0)