首页
社区
课程
招聘
移动安全学习笔记(四)
发表于: 2023-2-16 11:51 22997

移动安全学习笔记(四)

2023-2-16 11:51
22997

Dex文件的整体结构如下,文件头指定了一些属性,索引区记录着一些偏移和索引,数据区用于存放真正所需要的数据。

字符串表项,是一个字符串数据的偏移,偏移指向的是一个 string_data 结构

string_data结构中有两个字段:

字段1:代表长度,数据类型是 uleb128(变长的数据类型 1-5 个字节)

储存数据,字符串以 0 结尾

类型表表项,是一个索引值,类型描述符字符串在字符串表中的索引,索引是1则表示在字符串表中的数组索引1中的元素。类型描述符包括基本数据类型的描述符和类类型的描述符。

原型表项中存储的是函数原型的各部分描述信息。包括短类型(shorty_idx)、返回类型(return_type_idx)、参数的类型(parameters_off,最终还是一个指向字符串表的数组下标)。

注意:字段为返回类型(return_type_idx)的值,是类型表中的索引。

字段表项中内容存储的是字段的信息。包括字段所在类(class_idx)、字段的类型(type_idx)、字段的名称(name_idx),class_idx是类型表中的索引,type_idx是类型表中的索引,字段名称的索引是字符串表的数组下标。

方法表项中存储的是方法的信息,包括方法所在的类(class_ idx)、方法的原型(proto_idx)、方法的名称(name _idx),其中class_idx是类型表中的索引,proto_idx是在原型表中的索引,方法名称的索引(name_idx)是字符串表的数组下标。

类数据是一个数组,每一个元素就是一个类的相关信息。在表项中的class_data中存储的是类数据,包括类名索引、访问属性、父类索引、接口偏移源码索引、注解偏移、类数据偏移。

特点:变长,(1-5字节),每一个字节最高位表示标志位, 可以理解为是是否下一字节有数据。

范围:整型,最大表示一个32位的无符号数据

举例:

整型数据:16进制:0x180

二进制:0000 0001 1000 0000

小端方式二进制:1000 0000 0000 0001


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2023-2-16 18:05 被简单的简单编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//