Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Android Dex结构体定义不准确 #861

@hzshang

Description

@hzshang

https://ctf-wiki.org/android/basic_operating_mechanism/java_layer/dex/dex/#class-def
wiki上展示的DexClassDataHeader结构体是下面的定义

struct DexClassDataHeader {
    u4 staticFieldsSize;  /* 静态字段个数 */
    u4 instanceFieldsSize; /* 实例字段个数 */
    u4 directMethodsSize;  /* 直接方法个数 */
    u4 virtualMethodsSize; /* 虚方法个数 */
};

不过根据Android文档 https://source.android.com/docs/core/runtime/dex-format?hl=zh-cn#class-data-item
这里的header定义类型应该为ueb128

名称 格式 说明
static_fields_size uleb128 此项中定义的静态字段的数量
instance_fields_size uleb128 此项中定义的实例字段的数量
direct_methods_size uleb128 此项中定义的直接方法的数量
virtual_methods_size uleb128 此项中定义的虚拟方法的数量

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions