Android应用逆向分析技术综述

Android应用逆向分析技术综述

ID:41568595

大小:87.49 KB

页数:11页

时间:2019-08-28

Android应用逆向分析技术综述_第1页
Android应用逆向分析技术综述_第2页
Android应用逆向分析技术综述_第3页
Android应用逆向分析技术综述_第4页
Android应用逆向分析技术综述_第5页
资源描述:

《Android应用逆向分析技术综述》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Android应用逆向分析技术综述Dex文件结构Android程序静态分析—、Dex文件结构1.文件头DEX文件头主要包括校验和以及其他结构的偏移地址和长度信息。字段名称偏移值长度描述magic0x08•Magic*值,即魔数字段,格式如”dex/n035/0”,其中的035表示结构的版本。checksum0x84校验码。signatureOxC20SHA-1签名。file_size0x204Dex文件的总长度。header_size0x244文件头长度,009版本=0x50,035版本=0x70。endian_tag0x284标识字节顺序的常量,根据这个常

2、量可以判断文件是否交换了字节顺序,缺省情况下=0x78563412。linksize0x2C4连接段的大小,如果为0就表示是郵态连接。link_off0x304连接段的开始位置,从本文件头开始算起。如果连接段的人小为0,这里也是0。map_off0x344map数据基地址。string_ids_size0x384字符串列表的字符串个数。string_ids_off0x3C4字符串列表表基地址。type_ids_size0x404类型列表里类型个数。type_ids_off0x444类型列表基地址。proto_ids_size0x484原型列表里原型个数。pr

3、oto」ds_off0x4C4原型列表基地址。field_ids_size0x504字段列表里字段个数。field_ids_off0x544字段列表基地址。method_ids_size0x584方法列表里方法个数。method_ids_off0x5C4方法列表基地址。class_defs_size0x604类定义类表中类的个数。class_defs_off0x644类定义列表基地址。data_size0x684数据段的大小,必须以4字节对齐。data_off0x6C4数据段基地址2.魔数字段魔数字段,主要就是Dex文件的标识符,它占用4个字节,在目前的源码

4、里是“dexE,它的作用主要是用来标识dcx文件的,比如冇一个文件也以dcx为后缀名,仅此并不会被认为是Davlik熄拟机运行的文件,还耍判断这四个字节。另外Davlik虚拟机也有优化的Dex,也是通过个字段來区分的,当它是优化的Dex文件时,它的值就变成"deyiT了。根据这四个字节,就可以识别不同类型的Dex文件了。3.检验码字段主要用來检查从这个字段开始到文件结尾,这段数据是否完整,有没有人修改过,或者传送过程屮是否有岀错等等。通常用来检查数据是否完整的算法,有CRC32、有SHA128等,但这里采用并不是这两类,而采用一个比较特别的算法,叫做adl

5、er32,这是在开源zlib里常用的算法,用来检查文件是否完整性。该算法由MarkAdlcr发明,其可靠程度跟CRC32差不多,不过还是弱一点点,但它有一个很好的优点,就是使用软件来计算检验码吋比较CRC32要快很多。可见Android系统,就算法上就已经为移动设备进行优化了。4.SHA-1签名字段dex文件头里,前面已经有了面有一个4字节的检验字段码了,为什么还会有SHA-1签名字段呢?不是重复了吗?可是仔细考虑一下,这样设计自有道理。因为dex文件一般都不是很小,简单的应用程序都有儿十K,这么多数据使卅一个4字节的检验码,重复的机率述是有的,也就是说当文

6、件里的数据修改了,还是很有可能检验不出来的。这时检验码就失去了作用,需要使用更加强大的检验码,这就是SHA-loSHA-1校验码冇20个字节,比前面的检验码多了16个字节,几乎不会不同的文件计算出来的检验是一样的。设计两个检验码的目的,就是先使用笫一个检验码进行快速检查,这样可以先把简单出错的dex文件丢掉了,接着再使用第二个复杂的检验码进行复杂计算,验证文件是否完整,这样确保执行的文件完整和安全。SHA(SecureHashAlgorithm,安全散列算法)是美国国家安全局设计,美国国家标准与技术研究院发布的一-系列密码散列函数。SHA-1看起來和MD5算

7、法很像,也许是RonRivest在SHA・1的设计中起了一定的作用。SHA-1的内部比MD5更强,其摘要比MD5的16字节长4个字节,这个算法成功经受了密码分析专家的攻击,也因而受到密码学界的广泛推崇。这个算法在目前网络上的签名,BT软件里就有人量使用,比如在BT里要计算是否同一个种了时,就是利用文件的签名来判断的。同一份8G的电彩从儿千BT用户那里下载,也不会出现错误的数据,导致电影不播放。5.map_off字段这个字段主要保存map开始位置,就是从文件头开始到map数据的长度,通过这个索引就可以找到map数据。map的数据结构如下:名称大小说明size4

8、字节map里项的个数list变长每一项定义为12字节

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。