def class_defs(self): # seems ok
class_defs_size_offset = 96 # VERIFIED
class_defs_off_offset = 100 # VERIFIED
self.class_defs_size = self.read_uint(class_defs_size_offset) # ok
self.class_defs_off = self.read_uint(class_defs_off_offset) # ok
print "\n===============================\n"
print "class_defs_size: ", self.class_defs_size, "\n"
print "class_defs_off: ", hex(self.class_defs_off), "\n"
# class_def_items will store the class_def_items, see "class_def_item" @ https://source.android.com/devices/tech/dalvik/dex-format.html
# Name | Format
# ========================================
# class_idx uint | uint
# access_flags | uint
# superclass_idx | uint
# interfaces_off | uint
# source_file_idx | uint
# annotations_off | uint
# class_data_off | uint
# static_values_off | uint
class_def_item_size = 0x20 # 0x20 is 32 decimal, the class_def_item size in bytes
class_def_items = []
offset = 0
for i in range(self.class_defs_size):
offset = four_byte_align(offset)
item = self.read_class_def_item(offset)
offset += class_def_item_size
class_def_items.append(item)
# list of class_def_item objects
return class_def_items
# collision?
# handles data_size, data_off
评论列表
文章目录