zoukankan      html  css  js  c++  java
  • dex文件格式一

    一.生成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.7dalviklibdex
    android2.3.7dalviklibdexDexFile.c   dexFileParse 做主要的解析工作
    需要注意的是每个Android源码版本的路径可能不一样,dex文件的格式也可能会有细微的变化,请参考相关平台的源码

    用source insight来进行源码分析


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



    三.dex文件格式
    整体格式概要



    Android dex文件格式样例
    附图1 DEX文件格式.jpg

    文件格式相互之间的联系





  • 相关阅读:
    windows7 Cygwin 下安装 YouCompleteMe 插件
    挣值管理(EVT)
    关键路径法
    PERT(计划评审技术,Program Evaluation an Review Technique)
    孙子兵法--你如何来做好事情
    项目经理解决冲突的模式
    PMP考试--成本管理中常用的概念
    PMP考试--挣值如何计算?
    PMP-产品范围与项目范围区别
    PMP考试--价值工程法
  • 原文地址:https://www.cnblogs.com/bingghost/p/5825512.html
Copyright © 2011-2022 走看看