一.生成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文件格式一的更多相关文章

  1. dex文件格式二

    一. dex文件头 (1) magic value 在DexFile.c   dexFileParse函数中 会先检查magic opt 啥是magic opt呢? 我们刚刚从cache目录拷贝出来的 ...

  2. Android Dex文件格式(二)

    第三块: 数据区         索引区中的最终数据偏移以及文件头中描述的map_off偏移都指向数据区, 还包括了即将要解析的class_def_item, 这个结构非常重要,下面就开始解析   c ...

  3. Android Dex文件格式(一)

    dex是Android平台上(Dalvik虚拟机)的可执行文件, 相当于Windows平台中的exe文件, 每个Apk安装包中都有dex文件, 里面包含了该app的所有源码, 通过反编译工具可以获取到 ...

  4. [Android Security] DEX文件格式分析

    copy from : https://segmentfault.com/a/1190000007652937 0x00 前言 分析 dex 文件格式最好的方式是找个介绍文档,自己再写一个简单的 de ...

  5. Android逆向之旅---解析编译之后的Dex文件格式

    一.前言 新的一年又开始了,大家是否还记得去年年末的时候,我们还有一件事没有做,那就是解析Android中编译之后的classes.dex文件格式,我们在去年的时候已经介绍了: 如何解析编译之后的xm ...

  6. dex文件格式学习

    一.dex文件的生成 我们可以通过java文件来生成一个简单的dex文件 编译过程: 首先编写java代码如下: (1) 编译成 java class 文件 执行命令 : javac Hello.ja ...

  7. dex文件格式三

    先来看看整体的结构,结构体定义在DexFile.h里面   在dexFileSetupBasicPointers中设置各个子结构体,当然是在解析DexHeader之后 源码在DexFile.c文件中 ...

  8. 【原】tinker dex文件格式的dump工具tinker-dex-dump

    序言 Tinker是微信推出的热更新开源项目,同其它热更新方案相比具有补丁包小,支持类,so,资源文件的替换等优点.其中在类替换的方案里自主研发了DexDiff算法,使得补丁包变的更小.DexDiff ...

  9. Android安全–Dex文件格式详解

    Dex文件是手机上类似Windows上的EXE文件,dex文件是可以直接在Dalvik虚拟机中加载运行的文件. 首先我们来生成一个Dex文件. 新建文件Hello.java内容如下: class He ...

随机推荐

  1. HTML 学习笔记 JavaScript(创建对象)

    原博地址:http://www.cnblogs.com/dolphinX/p/3288118.html JavaScript 有Date Array String等这样的内置对象,功能强大实用简单,但 ...

  2. Zip加密

    http://www.cnblogs.com/kgdxpr/archive/2013/08/01/3230174.html

  3. 一份关于Swift语言学习资源的整理文件

    一份关于Swift语言学习资源的整理文件     周银辉 在这里下载 https://github.com/ipader/SwiftGuide

  4. 如何使iframe透明

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  5. 【抓包工具】wireshark

    wireshark下载地址:http://download.csdn.net/detail/victoria_vicky/8819777 一.wireshark优劣势 wireshark劣势:只能查看 ...

  6. 命名空间“System.Web”中不存在类型或命名空间名称“HttpUtility”。是否缺少程序集引用?

    vs2010下解决方案: 1.右击项目选择“属性”,目标框架选择“.net FrameWord 4”; 2.右击项目中的引用,添加引用,在.net下选择System.Web,确定OK. 解释: fra ...

  7. 软件工程(FZU2015)赛季得分榜,第二回合

    目录 第一回合 第二回合 第三回合 第四回合 第五回合 第6回合 第7回合 第8回合 第9回合 第10回合 第11回合 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分: 团队项目分 ...

  8. 软件工程(FZU2015)赛季得分榜,第五回合

    目录 第一回合 第二回合 第三回合 第四回合 第五回合 第6回合 第7回合 第8回合 第9回合 第10回合 第11回合 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分: 团队项目分 ...

  9. thinkphp语言包

    1.config.php语言包相关配置. //开启语言包 'LANG_SWITCH_ON' => true, 'LANG_AUTO_DETECT' => true, // 自动侦测语言 开 ...

  10. ecshop 实现购物车退出不清空

    ecshop模板在使用过程中会遇到会员退出再登陆时购物车里面的商品会被清空掉的,通过ecshop开发中心的技术,整理的文档,对程序做简单修改即可实现会员退出不清空购物车 ECShop版本:V2.7.3 ...