dexFile_mine.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:binja_smali 作者: lucasduffey 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号