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 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
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.