public interface

IDexUnit

implements ICodeUnit
com.pnfsoftware.jeb.core.units.code.android.IDexUnit

Class Overview

Interface for units representing Android Dalvik bytecode containers, aka DEX files. The DEX unit interface is a virtual view of the DEX bytecode contained an Android application (APK).

Note that in the case of multi-DEX APKs, the DEX unit represents a virtual, unified view of the separate DEX files contained in the APK. If required, the individual information about those DEX files can be retrieved via IDexFile.

Summary

Constants
int ACC_ABSTRACT
int ACC_ANNOTATION
int ACC_BRIDGE
int ACC_CONSTRUCTOR
int ACC_DECLARED_SYNCHRONIZED
int ACC_ENUM
int ACC_FINAL
int ACC_INTERFACE
int ACC_NATIVE
int ACC_PRIVATE
int ACC_PROTECTED
int ACC_PUBLIC
int ACC_STATIC
int ACC_STRICT
int ACC_SYNCHRONIZED
int ACC_SYNTHETIC
int ACC_TRANSIENT
int ACC_VARARGS
int ACC_VOLATILE
Public Methods
abstract IDexField addField(String signature)
Create a new field and add it to the field pool index.
abstract IDexMethod addMethod(String signature)
Create a new method reference and add it to the method pool index.
abstract IDexPrototype addPrototype(String prototypeString)
Create a new DEX prototype and add it to the prototype pool index.
abstract IDexString addString(String value)
Create a new string and add it to the string pool index.
abstract IDexType addType(String typeString)
Create a new type and add it to the type pool index.
abstract IDexCallSite getCallSite(int index)
abstract List<? extends IDexCallSite> getCallSites()
abstract IDexClass getClass(String fqname)
Convenience method used to retrieve a class by name.
abstract IDexClass getClass(int index)
Convenience method to retrieve a class by its DEX class pool index.
abstract List<? extends IDexClass> getClasses()
Get the DEX class pool
abstract List<IDexFile> getDexFiles()
Get the list of underlying objects representing each classes.dex that compose this unit.
abstract String getDisassembly()
This method provides the entire disassembly of the bytecode making up the DEX file.
abstract IDexDisassemblyDocument getDisassemblyDocument()
Convenience method to retrieve the text document representing the disassembly of this DEX unit.
abstract IDexField getField(String fqname)
Convenience method used to retrieve a field by name.
abstract IDexField getField(int index)
Convenience method to retrieve a field by its DEX field pool index.
abstract List<? extends IDexField> getFields()
Get the DEX field pool
abstract long getInstructionCount()
Retrieve the total amount of instructions in this DEX unit.
abstract IDexMethod getMethod(String fqname)
Convenience method used to retrieve a method by name.
abstract IDexMethod getMethod(int index)
Convenience method to retrieve a method by its DEX method pool index.
abstract IDexMethodHandle getMethodHandle(int index)
abstract List<? extends IDexMethodHandle> getMethodHandles()
abstract List<? extends IDexMethod> getMethods()
Get the DEX method pool
abstract IDexPrototype getPrototype(int index)
Convenience method to retrieve a prototype by its DEX prototype pool index.
abstract List<? extends IDexPrototype> getPrototypes()
Get the list of DEX prototypes defined in the DEX file (prototype pool).
abstract IDexString getString(int index)
Convenience method to retrieve a string by its DEX string pool index.
abstract List<? extends IDexString> getStrings()
Get the DEX string pool, including extra strings added via addString.
abstract IDexType getType(int index)
Convenience method to retrieve a type by its DEX type pool index.
abstract List<? extends IDexType> getTypes()
Get the DEX prototype pool
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.IUnitCreator
From interface com.pnfsoftware.jeb.core.units.IAddressableUnit
From interface com.pnfsoftware.jeb.core.units.IInteractiveUnit
From interface com.pnfsoftware.jeb.core.units.IUnit
From interface com.pnfsoftware.jeb.core.units.code.ICodeUnit
From interface com.pnfsoftware.jeb.util.events.IEventSource

Constants

public static final int ACC_ABSTRACT

Constant Value: 1024 (0x00000400)

public static final int ACC_ANNOTATION

Constant Value: 8192 (0x00002000)

public static final int ACC_BRIDGE

Constant Value: 64 (0x00000040)

public static final int ACC_CONSTRUCTOR

Constant Value: 65536 (0x00010000)

public static final int ACC_DECLARED_SYNCHRONIZED

Constant Value: 131072 (0x00020000)

public static final int ACC_ENUM

Constant Value: 16384 (0x00004000)

public static final int ACC_FINAL

Constant Value: 16 (0x00000010)

public static final int ACC_INTERFACE

Constant Value: 512 (0x00000200)

public static final int ACC_NATIVE

Constant Value: 256 (0x00000100)

public static final int ACC_PRIVATE

Constant Value: 2 (0x00000002)

public static final int ACC_PROTECTED

Constant Value: 4 (0x00000004)

public static final int ACC_PUBLIC

Constant Value: 1 (0x00000001)

public static final int ACC_STATIC

Constant Value: 8 (0x00000008)

public static final int ACC_STRICT

Constant Value: 2048 (0x00000800)

public static final int ACC_SYNCHRONIZED

Constant Value: 32 (0x00000020)

public static final int ACC_SYNTHETIC

Constant Value: 4096 (0x00001000)

public static final int ACC_TRANSIENT

Constant Value: 128 (0x00000080)

public static final int ACC_VARARGS

Constant Value: 128 (0x00000080)

public static final int ACC_VOLATILE

Constant Value: 64 (0x00000040)

Public Methods

public abstract IDexField addField (String signature)

Create a new field and add it to the field pool index.

public abstract IDexMethod addMethod (String signature)

Create a new method reference and add it to the method pool index.

public abstract IDexPrototype addPrototype (String prototypeString)

Create a new DEX prototype and add it to the prototype pool index.

Parameters
prototypeString a full prototype string, such as: (typeParam1,typeParam2,...)typeReturn

public abstract IDexString addString (String value)

Create a new string and add it to the string pool index.

public abstract IDexType addType (String typeString)

Create a new type and add it to the type pool index.

Parameters
typeString a fully-qualified type name, using the standard Java internal signature notation (L...;)

public abstract IDexCallSite getCallSite (int index)

public abstract List<? extends IDexCallSite> getCallSites ()

public abstract IDexClass getClass (String fqname)

Convenience method used to retrieve a class by name.

public abstract IDexClass getClass (int index)

Convenience method to retrieve a class by its DEX class pool index.

public abstract List<? extends IDexClass> getClasses ()

Get the DEX class pool

public abstract List<IDexFile> getDexFiles ()

Get the list of underlying objects representing each classes.dex that compose this unit.

Returns
  • a list of at least one element; when restoring pre-JEB 2.3 JDB2, this list will be null

public abstract String getDisassembly ()

This method provides the entire disassembly of the bytecode making up the DEX file. This method is a convenience method: the disassembly text document object can always be retrieved via getFormatter().

public abstract IDexDisassemblyDocument getDisassemblyDocument ()

Convenience method to retrieve the text document representing the disassembly of this DEX unit.

public abstract IDexField getField (String fqname)

Convenience method used to retrieve a field by name.

public abstract IDexField getField (int index)

Convenience method to retrieve a field by its DEX field pool index.

public abstract List<? extends IDexField> getFields ()

Get the DEX field pool

public abstract long getInstructionCount ()

Retrieve the total amount of instructions in this DEX unit. Note that if this unit represents the virtual DEX file resulting from the merge of several classesX.dex files, the number of instructions returned is the sum of instructions of each individual DEX file.

public abstract IDexMethod getMethod (String fqname)

Convenience method used to retrieve a method by name.

public abstract IDexMethod getMethod (int index)

Convenience method to retrieve a method by its DEX method pool index.

public abstract IDexMethodHandle getMethodHandle (int index)

public abstract List<? extends IDexMethodHandle> getMethodHandles ()

public abstract List<? extends IDexMethod> getMethods ()

Get the DEX method pool

public abstract IDexPrototype getPrototype (int index)

Convenience method to retrieve a prototype by its DEX prototype pool index.

Parameters
index prototype index

public abstract List<? extends IDexPrototype> getPrototypes ()

Get the list of DEX prototypes defined in the DEX file (prototype pool).

Returns
  • a list of prototypes

public abstract IDexString getString (int index)

Convenience method to retrieve a string by its DEX string pool index.

public abstract List<? extends IDexString> getStrings ()

Get the DEX string pool, including extra strings added via addString.

public abstract IDexType getType (int index)

Convenience method to retrieve a type by its DEX type pool index.

public abstract List<? extends IDexType> getTypes ()

Get the DEX prototype pool