| java.lang.Object | |
| ↳ | com.pnfsoftware.jeb.core.units.code.android.DexUtil |
DEX utility routines.
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| static String |
bytearrayMUTF8ToString(byte[] data, int pos, int[] readsize)
Decode a MUTF-8 encoded string.
| ||||||||||
| static String |
bytearrayMUTF8ToStringFast(byte[] data, int pos, int[] readsize, int expectedLength)
Decode a MUTF-8 encoded string.
| ||||||||||
| static int |
bytearraySLEB128ToInt(byte[] data, int pos, int[] readsize)
Read a signed LEB128-encoded int.
| ||||||||||
| static int |
bytearrayULEB128P1ToInt(byte[] data, int pos, int[] readsize)
Read an unsigned LEB128-encoded int shifted by 1.
| ||||||||||
| static int |
bytearrayULEB128ToInt(byte[] data, int pos, int[] readsize)
Read an unsigned LEB128-encoded int.
| ||||||||||
| static int |
bytearrayULEInt16ToInt(byte[] data, int pos)
Read a little-endian uint16 short.
| ||||||||||
| static int |
bytearrayULEInt32ToInt(byte[] data, int pos)
Read a little-endian uint32 int.
| ||||||||||
| static int |
convertDexFlagsToCodeFlags(int nativeFlags)
Convert native Dalvik flags to generic
ICodeItem flags. | ||||||||||
| static int | determineBestBase(long value) | ||||||||||
| static String |
formatAccessFlags(int f, int add_final_space)
Format Java access flags to an appropriate string.
| ||||||||||
| final static String |
formatFieldsigs(IDexUnit dex, Collection<Integer> indices)
Format a list of DEX fields.
| ||||||||||
| final static String |
formatMethodsigs(IDexUnit dex, Collection<Integer> indices)
Format a list of DEX methods.
| ||||||||||
| final static String |
formatTypenames(IDexUnit dex, Collection<Integer> indices)
Format a list of DEX types.
| ||||||||||
| static List<String> |
getDebugParameterNames(IDexUnit dex, IDexMethodData md)
Convenience method to retrieve the list of arguments' debug names whose indices are provided
by {@link IDexDebugInfo#getParameterNameIndexes().
| ||||||||||
| static ParametersInfo |
getMethodParametersInfo(IDexUnit dex, IDexMethodData md)
Generate method parameters' registers information.
| ||||||||||
| static ParametersInfo |
getMethodParametersInfo(String shorty, boolean isStaticMethod)
Generate method parameters' registers information.
| ||||||||||
| static int |
getMethodSlotCount(String shorty, boolean isStaticMethod)
Determine the number of slots required by a method to hold all of its parameters (including
`this` if the method is not static).
| ||||||||||
| static IDexValue |
getStaticFieldInitializer(IDexClass c, IDexFieldData fd)
Retrieve the initial value of a static final class field.
| ||||||||||
| final static int |
getVersion(IBinaryUnit unit)
Extract the version number from an Android binary unit.
| ||||||||||
| static boolean | isSubtypeOf(IDexUnit dex, int typeIndex, int candidateParentTypeIndex) | ||||||||||
| static String[] |
toJniName(String signature)
Converts a java signature to the conventional jni method name.
| ||||||||||
| static void |
validateClassFlags(int f)
Validate Dalvik class item flags: this method throws if some flags are undefined or illegal
for class items.
| ||||||||||
| static void |
validateFieldFlags(int f)
Validate Dalvik field item flags: this method throws if some flags are undefined or illegal
for field items.
| ||||||||||
| static void |
validateFlags(int f)
Validate Dalvik flags: this method throws if some flags are undefined Dalvik flags.
| ||||||||||
| static void |
validateMethodFlags(int f)
Validate Dalvik method item flags: this method throws if some flags are undefined or illegal
for method items.
| ||||||||||
|
[Expand]
Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
| |||||||||||
Decode a MUTF-8 encoded string.
| readsize | optional one-element output array |
|---|
Decode a MUTF-8 encoded string.
| readsize | optional one-element output array |
|---|
Read a signed LEB128-encoded int.
Read an unsigned LEB128-encoded int shifted by 1.
Read an unsigned LEB128-encoded int.
Read a little-endian uint16 short.
Read a little-endian uint32 int.
Convert native Dalvik flags to generic ICodeItem flags.
Format Java access flags to an appropriate string.
| f | Flags, as defined by the Dalvik specs |
|---|---|
| add_final_space | if 1, append a trailing space; if -1, append a trailing space only if the access flags string is not empty |
Format a list of DEX fields.
| dex | unit |
|---|---|
| indices | DEX method indices |
Format a list of DEX methods.
| dex | unit |
|---|---|
| indices | DEX method indices |
Format a list of DEX types.
| dex | unit |
|---|---|
| indices | DEX type indices |
Convenience method to retrieve the list of arguments' debug names whose indices are provided by {@link IDexDebugInfo#getParameterNameIndexes().
Generate method parameters' registers information.
Generate method parameters' registers information.
Determine the number of slots required by a method to hold all of its parameters (including `this` if the method is not static).
Retrieve the initial value of a static final class field.
| c | a dex class object |
|---|---|
| fd | field definition of an internal field |
Extract the version number from an Android binary unit.
| unit | an Android binary unit respecting the standard header (xxxxNNN0), such as dex, vdex, cdex, art, etc. |
|---|
| ParseException | on parsing error |
|---|
Converts a java signature to the conventional jni method name.
| signature | java signature |
|---|
Validate Dalvik class item flags: this method throws if some flags are undefined or illegal for class items.
Validate Dalvik field item flags: this method throws if some flags are undefined or illegal for field items.
Validate Dalvik flags: this method throws if some flags are undefined Dalvik flags.
Validate Dalvik method item flags: this method throws if some flags are undefined or illegal for method items.