码迷,mamicode.com
首页 > 其他好文 > 详细

dex文件格式一

时间:2016-08-31 14:06:14      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

一.生成dex文件
我们可以通过java文件来生成一个简单的dex文件

编译过程:
技术分享

首先编写java代码如下:
技术分享

(1) 编译成 java class 文件
执行命令 : javac Hello.java
技术分享
编译完成后 ,目录下生成 Hello.class 文件

(2) 编译成 dex 文件
dx --dex --output=Hello.dex Hello.class

编译正常会生成 Hello.dex 文件
技术分享

00 34指明jdk版本,这个原因是jdk版本过高了,我们得使用1.6版本的JDK来进行编译
技术分享

这个时候我们可以指明编译指定版本的来进行编译class文件
javac -source 1.6 -target 1.6 Hello.java

(3). 使用 ADB 运行测试
测试命令和输出结果如下 :
adb push Hello.dex /mnt/sdcard/
adb shell dalvikvm -cp /mnt/sdcard/Hello.dex Hello
技术分享

第一次运行会在data/dalvik-cache目录生成一个odex的文件
技术分享
有些加固没有考虑这个文件,dex的加固直接就废掉了

直接把这个文件拖到ida是可以分析的,拖到jeb就显示未知的文件格式
我们使用winhex查看,发现前面多了一些内容
技术分享

把这些内容剪切掉,在用jeb分析,就成功解析出来了
技术分享


二.dalvik文件文档
文档目录
android2.3.7/dalvik/docs/dex-format.html

相关源码目录:
android2.3.7\dalvik\libdex
android2.3.7\dalvik\libdex\DexFile.c   dexFileParse 做主要的解析工作
需要注意的是每个Android源码版本的路径可能不一样,dex文件的格式也可能会有细微的变化,请参考相关平台的源码

用source insight来进行源码分析
技术分享

分析可以使用010Editor脚本进行分析
技术分享


三.dex文件格式
整体格式概要
技术分享


Android dex文件格式样例
技术分享

文件格式相互之间的联系
技术分享





dex文件格式一

标签:

原文地址:http://www.cnblogs.com/bingghost/p/5825512.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!