网站功能插件ui界面设计软件
网站功能插件,ui界面设计软件,中国建设银行邢台分行网站,学院网站开发网站定位一. dex文件头(1) magic value在DexFile.c dexFileParse函数中 会先检查magic opt啥是magic opt呢? 我们刚刚从cache目录拷贝出来的那个前面的dey 036就是magic opt在源码中会先解析magic opt,然后重设dexfile指针重设magic opt指针后开始解析magic value这 8 个 字节一般是…一. dex文件头(1) magic value在DexFile.c dexFileParse函数中 会先检查magic opt啥是magic opt呢? 我们刚刚从cache目录拷贝出来的那个前面的dey 036就是magic opt在源码中会先解析magic opt,然后重设dexfile指针重设magic opt指针后开始解析magic value这 8 个 字节一般是常量。数组的值可以转换为一个字符串如下 { 0x64 0x65 0x78 0x0a 0x30 0x33 0x35 0x00 } dex\n035\0(2) checksum文件校验码 使用alder32 算法校验文件先用dexheader先校验,校验失败在使用opt header去校验其校验算法如下除去maigcchecksum 外余下的所有文件区域 用于检查文件错误(3) signaturesignature , 使用 SHA-1 算法 hash 除去 magic ,checksum 和 signature 外余下的所有文件区域 用于唯一识别本文件由此可见我们在修改了dex文件之后,得先修正signature然后在修正checksum(4) file_sizeDex 文件的大小 ,源码中会拿该字段和传入的长度值进行比较(5) header_sizeheader 区域的大小 单位 Byte 一般固定为 0x70 常量在DexSwapVerify.c dexSwapAndVerify高版本不知道是不是这样校验的 大于居然没有置为okay(6) endian_tag大小端标签 标准 .dex 文件格式为小端 此项一般固定为 0x12345678常量 CmdUtils.c 程序调用主线从dexOpenAndMap-dexSwapAndVerifyIfNecessary-dexSwapAndVerify-swapDexHeader这里逻辑有点绕,他默认就会转换一次, 如果是小尾,转换之后就是大尾,那么校验就不会通过如果是大尾方式, 就转换成小尾, 校验通过,继续后面的转换流程还一个校验是如果是odex格式,那么已经是优化之后的,则不需要转换其转换算法如下:(6) link_size和link_off这个两个字段是表示链接数据的大小和偏移值CHECK_OFFSET_RANGE 只是检查是否超出文件指针范围(7) map_offmap item 的偏移地址 该 item 属于 data 区里的内容 值要大于等于 data_off 的大小 。其结构体指向:MapItem对应的枚举值010Editor中呈现(8) string_ids_size和string_ids_off这两个字段表示dex中用到的所有的字符串内容的大小和偏移值我们需要解析完这部分然后用一个字符串池存起来后面有其他的数据结构会用索引值来访问字符串这个池子也是非常重要的。后面会详细介绍string_ids的数据结构(9) type_ids_size和type_ids_off这两个字段表示dex中的类型数据结构的大小和偏移值比如类类型基本类型等信息后面会详细介绍type_ids的数据结构(10) proto_ids_size和type_ids_off这两个字段表示dex中的元数据信息数据结构的大小和偏移值描述方法的元数据信息比如方法的返回类型参数类型等信息后面会详细介绍proto_ids的数据结构(11) field_ids_size和field_ids_off这两个字段表示dex中的字段信息数据结构的大小和偏移值后面会详细介绍field_ids的数据结构(12) method_ids_size和method_ids_off这两个字段表示dex中的方法信息数据结构的大小和偏移值后面会详细介绍method_ids的数据结构(13) class_defs_size和class_defs_off这两个字段表示dex中的类信息数据结构的大小和偏移值这个数据结构是整个dex中最复杂的数据结构他内部层次很深包含了很多其他的数据结构所以解析起来也很麻烦所以后面会着重讲解这个数据结构没有类的话,dex校验会失败(14) data_size和data_off这两个字段表示dex中数据区域的结构信息的大小和偏移值这个结构中存放的是数据区域比如我们定义的常量值等信息。到这里我们就看完了dex的头部信息头部包含的信息还是很多的主要就两个个部分1) 魔数签名文件大小等信息2) 后面的各个数据结构的大小和偏移值都是成对出现的下一节我们就来开始介绍各个数据结构的信息来自为知笔记(Wiz)转载于:https://www.cnblogs.com/bingghost/p/5825515.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/86253.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!