Module dvm
[hide private]
[frames] | no frames]

Module dvm

source code

Classes [hide private]
  HEADER_NAMEDTUPLE
HEADER_NAMEDTUPLE(magic, checksum, signature, file_size, header_size, endian_tag, link_size, link_off, map_off, string_ids_size, string_ids_off, type_ids_size, type_ids_off, proto_ids_size, proto_ids_off, field_ids_size, field_ids_off, method_ids_size, method_ids_off, class_defs_size, class_defs_off, data_size, data_off)
  MAP_ITEM_NAMEDTUPLE
MAP_ITEM_NAMEDTUPLE(type, unused, size, offset)
  PROTO_ID_ITEM_NAMEDTUPLE
PROTO_ID_ITEM_NAMEDTUPLE(shorty_idx, return_type_idx, parameters_off)
  METHOD_ID_ITEM_NAMEDTUPLE
METHOD_ID_ITEM_NAMEDTUPLE(class_idx, proto_idx, name_idx)
  FIELD_ID_ITEM_NAMEDTUPLE
FIELD_ID_ITEM_NAMEDTUPLE(class_idx, type_idx, name_idx)
  CLASS_DEF_ITEM_NAMEDTUPLE
CLASS_DEF_ITEM_NAMEDTUPLE(class_idx, access_flags, superclass_idx, interfaces_off, source_file_idx, annotations_off, class_data_off, static_values_off)
  TRY_ITEM_NAMEDTUPLE
TRY_ITEM_NAMEDTUPLE(start_addr, insn_count, handler_off)
  ANNOTATIONS_DIRECTORY_ITEM_NAMEDTUPLE
ANNOTATIONS_DIRECTORY_ITEM_NAMEDTUPLE(class_annotations_off, fields_size, annotated_methods_size, annotated_parameters_size)
  SPARSE_SWITCH_NAMEDTUPLE
SPARSE_SWITCH_NAMEDTUPLE(ident, size)
  PACKED_SWITCH_NAMEDTUPLE
PACKED_SWITCH_NAMEDTUPLE(ident, size, first_key)
  FILL_ARRAY_DATA_NAMEDTUPLE
FILL_ARRAY_DATA_NAMEDTUPLE(ident, element_width, size)
  FillArrayData
  SparseSwitch
  PackedSwitch
  HeaderItem
  AnnotationOffItem
  AnnotationSetItem
  AnnotationSetRefItem
  AnnotationSetRefList
  FieldAnnotation
  MethodAnnotation
  ParameterAnnotation
  AnnotationsDirectoryItem
  TypeLItem
  TypeList
  DBGBytecode
  DebugInfoItem2
  DebugInfoItem
  EncodedArray
  EncodedValue
  AnnotationElement
  EncodedAnnotation
  AnnotationItem
  EncodedArrayItem
  StringDataItem
  StringIdItem
  IdItem
  TypeItem
  TypeIdItem
  ProtoItem
  ProtoIdItem
  FieldItem
  FieldIdItem
  MethodItem
  MethodIdItem
  EncodedField
  EncodedMethod
  ClassDataItem
  ClassItem
  ClassDefItem
  EncodedTypeAddrPair
  EncodedCatchHandler
  EncodedCatchHandlerList
  DBCSpe
  DBC
  DCode
  DalvikCode
  CodeItem
  MapItem
  OffObj
  ClassManager
  MapList
  Data
  DalvikVMFormat
Functions [hide private]
 
readuleb128(buff) source code
 
readsleb128(buff) source code
 
writeuleb128(value) source code
 
writesleb128(value) source code
 
determineNext(i, end, m) source code
Variables [hide private]
  DEX_FILE_MAGIC = 'dex\n035\x00'
  HEADER = ['=QL20sLLLLLLLLLLLLLLLLLLLL', <class 'dvm.HEADER_NAM...
  MAP_ITEM = ['=HHLL', <class 'dvm.MAP_ITEM_NAMEDTUPLE'>]
  PROTO_ID_ITEM = ['=LLL', <class 'dvm.PROTO_ID_ITEM_NAMEDTUPLE'>]
  METHOD_ID_ITEM = ['=HHL', <class 'dvm.METHOD_ID_ITEM_NAMEDTUPL...
  FIELD_ID_ITEM = ['=HHL', <class 'dvm.FIELD_ID_ITEM_NAMEDTUPLE'>]
  CLASS_DEF_ITEM = ['=LLLLLLLL', <class 'dvm.CLASS_DEF_ITEM_NAME...
  TRY_ITEM = ['=LHH', <class 'dvm.TRY_ITEM_NAMEDTUPLE'>]
  ANNOTATIONS_DIRECTORY_ITEM = ['=LLLL', <class 'dvm.ANNOTATIONS...
  TYPE_MAP_ITEM = {0: 'TYPE_HEADER_ITEM', 1: 'TYPE_STRING_ID_ITE...
  SPARSE_SWITCH = ['=HH', <class 'dvm.SPARSE_SWITCH_NAMEDTUPLE'>]
  PACKED_SWITCH = ['=HHL', <class 'dvm.PACKED_SWITCH_NAMEDTUPLE'>]
  FILL_ARRAY_DATA = ['=HHL', <class 'dvm.FILL_ARRAY_DATA_NAMEDTU...
  NORMAL_DVM_INS = 0
  SPECIFIC_DVM_INS = 1
  OPCODE_OP = 1
  OPCODE_BB = 1
  OPCODE_AA_OP = 2
  OPCODE_CC_BB = 2
  OPCODE_00 = 3
  OPCODE_B_A_OP = 4
  OPCODE_CCCC = 5
  OPCODE_BBBB = 5
  OPCODE_AAAA = 5
  OPCODE_SBBBB = 6
  OPCODE_SAAAA = 6
  OPCODE_SCCCC = 6
  OPCODE_G_F_E_D = 7
  OPCODE_SB_A_OP = 8
  OPCODE_SCC_BB = 11
  OPCODE_SCC = 13
  OPCODE_SAA = 13
  OPCODE_SBBBB0000 = 15
  OPCODE_SBBBBBBBB = 16
  OPCODE_SAAAAAAAA = 16
  OPCODE_00_OP = 17
  OPCODE_BBBBBBBB = 18
  DALVIK_OPCODES = {0: ['10x', 'nop', 'op', [1, 3], {}], 1: ['12...
  MATH_DVM_OPCODES = {'add.': '+', 'and.': '&', 'div.': '/', 'mu...
  INVOKE_DVM_OPCODES = ['invoke.']
  FIELD_READ_DVM_OPCODES = ['.get']
  FIELD_WRITE_DVM_OPCODES = ['.put']
  BREAK_DVM_OPCODES = ['invoke.', 'move.', '.put', 'if.']
  BRANCH_DVM_OPCODES = ['if.', 'goto', 'goto.', 'return', 'retur...
  DBG_END_SEQUENCE = 0
  DBG_ADVANCE_PC = 1
  DBG_ADVANCE_LINE = 2
  DBG_START_LOCAL = 3
  DBG_START_LOCAL_EXTENDED = 4
  DBG_END_LOCAL = 5
  DBG_RESTART_LOCAL = 6
  DBG_SET_PROLOGUE_END = 7
  DBG_SET_EPILOGUE_BEGIN = 8
  DBG_SET_FILE = 9
  DBG_Special_Opcodes_BEGIN = 10
  DBG_Special_Opcodes_END = 255
  VALUE_BYTE = 0
  VALUE_SHORT = 2
  VALUE_CHAR = 3
  VALUE_INT = 4
  VALUE_LONG = 6
  VALUE_FLOAT = 16
  VALUE_DOUBLE = 17
  VALUE_STRING = 23
  VALUE_TYPE = 24
  VALUE_FIELD = 25
  VALUE_METHOD = 26
  VALUE_ENUM = 27
  VALUE_ARRAY = 28
  VALUE_ANNOTATION = 29
  VALUE_NULL = 30
  VALUE_BOOLEAN = 31
  __package__ = None
Variables Details [hide private]

HEADER

Value:
['=QL20sLLLLLLLLLLLLLLLLLLLL', <class 'dvm.HEADER_NAMEDTUPLE'>]

METHOD_ID_ITEM

Value:
['=HHL', <class 'dvm.METHOD_ID_ITEM_NAMEDTUPLE'>]

CLASS_DEF_ITEM

Value:
['=LLLLLLLL', <class 'dvm.CLASS_DEF_ITEM_NAMEDTUPLE'>]

ANNOTATIONS_DIRECTORY_ITEM

Value:
['=LLLL', <class 'dvm.ANNOTATIONS_DIRECTORY_ITEM_NAMEDTUPLE'>]

TYPE_MAP_ITEM

Value:
{0: 'TYPE_HEADER_ITEM',
 1: 'TYPE_STRING_ID_ITEM',
 2: 'TYPE_TYPE_ID_ITEM',
 3: 'TYPE_PROTO_ID_ITEM',
 4: 'TYPE_FIELD_ID_ITEM',
 5: 'TYPE_METHOD_ID_ITEM',
 6: 'TYPE_CLASS_DEF_ITEM',
 4096: 'TYPE_MAP_LIST',
...

FILL_ARRAY_DATA

Value:
['=HHL', <class 'dvm.FILL_ARRAY_DATA_NAMEDTUPLE'>]

DALVIK_OPCODES

Value:
{0: ['10x', 'nop', 'op', [1, 3], {}],
 1: ['12x', 'move', 'vA, vB', [4], {}],
 2: ['22x', 'move/from16', 'vAA, vBBBB', [2, 5], {}],
 3: ['32x', 'move/16', 'vAAAA, vBBBB', [17, 5, 5], {}],
 4: ['12x', 'move-wide', 'vA, vB', [4], {}],
 5: ['22x', 'move-wide/from16', 'vAA, vBBBB', [2, 5], {}],
 6: ['32x', 'move-wide/16', 'vAAAA, vBBBB', [17, 5, 5], {}],
 7: ['12x', 'move-object', 'vA, vB', [4], {}],
...

MATH_DVM_OPCODES

Value:
{'add.': '+',
 'and.': '&',
 'div.': '/',
 'mul.': '*',
 'or.': '|',
 'shl.': '<<',
 'shr.': '>>',
 'sub.': '-',
...

BRANCH_DVM_OPCODES

Value:
['if.', 'goto', 'goto.', 'return', 'return.', 'packed.', 'sparse.']