Dex文件结构-ReadDex解析器实现

查看 96|回复 9
作者:OrientalGlass   
前言
近期学习DEX文件结构为学习APP加壳脱壳打基础,自实现了一个简易的DEX解析器加深理解
DEX文件结构整体看不复杂,深究时发现DexCLassDef结构非常复杂,编码的数据结构,嵌套和指向关系
本文作为近期学习的一个阶段总结以及知识分享,后期再完善Todo部分
由于本人水平有限,文章错漏之处还望大佬批评指正
环境&工具:

  • 010editor 15.0.1 (13.0.1有bug,打开大文件分析时容易崩溃)

  • Clion 2024.2.3

  • JDK 11.0.23

  • MinGW 14.2.0

  • Android Studio

    准备
    自行编译dex文件供后续分析
    public class HelloDEX{
            public static void main(String[] args){
                    System.out.println("Hello Dex!");
            }
    }
    javac HelloDEX.java
    d8 HelloDEX.class
    可能遇到报错如下,这是因为d8需要java11+的环境,不支持java8
    Error: A JNI error has occurred, please check your installation and try again
    Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/tools/r8/D8 has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
    数据类型
    Android源码 http://androidxref.com/2.3.7/xref/dalvik/libdex/DexFile.h 定义了dex文件用到的数据结构
    [table]
    [tr]
    自定义类型[/td]
    原类型[/td]
    含义[/td]
    [/tr]
    [tr]
    [td]s1

    文件, 结构

  • hf613   

    大佬,学习了,插个眼
    刘统宝   

    教程图文并茂,编排整齐,看后很受启发,点赞
    xilige2020   

    感谢分享!
    kulouxiaohai   

    要学的东西真多。
    抱薪风雪雾   

    学习,在学习。
    twl288   

    先收藏了支持下
    chenchenchen777   

    厉害了我的哥
    kanxue2018   

    分析思路很清晰,感谢分享
    LXGZJ237   

    膜拜大佬!
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部