格式简介
header
类型header_item
struct header_item{
public ubyte[] magic=new ubyte[8];
public uint checksum;
public ubyte[] signature =new ubyte[20];
public uint file_size;
public uint header_size;
public uint endian_tag;
public uint link_size;
public uint link_off;
public uint map_off;
public uint string_ids_size;
public uint string_ids_off;
public uint type_ids_size;
public uint type_ids_off;
public uint proto_ids_size;
public uint proto_ids_off;
public uint field_ids_size;
public uint field_ids_off;
public uint method_ids_size;
public uint method_ids_off;
public uint class_ids_size;
public uint class_ids_off;
public uint data_size;
public uint data_off;
}
magic 必须取值为dex\n035\0
checksum 文件内容的校验
signature 检验文件是否被篡改
file_size 文件的长度,包含所有内容
header_size 默认0x70
endian_tag 按照什么字节型来处理 小端为12345678 大端为78563212
string_ids 类型string_ids 存储和字符串的信息
type_ids 类型type_ids_item 存储相关的信息
proto_ids
field_ids 类型field_ids_item 存储变量信息包括变量名 类型
method_ids 存储成员函数信息包括函数名,参数和返回值类型
class_defs class_def_item 数组,元素类型为数组
data dex文件重要的数据类型都存在data区域内,会通过xx_off的位置进行扩展
link_data