用Classpy分析.dex文件

DVM

了解Android的人都知道,可以用Java语言开发Android应用。但是Android操作系统其实只是使用了Java语言而已,真正运行Java代码的虚拟机,并不是JVM,而是DVM(Dalvik Virtual Machine)。DVM并不符合JVM规范,主要表现在以下几个方面:

  • JVM是Stack Based,DVM是Register Based
  • JVM执行的是Java Bytecode,DVM有自己的Bytecode
  • JVM要求Java代码编译成.class文件,而DVM要求把.class文件合并成.dex文件

用Classpy分析.dex文件_第1张图片

分析DEX文件

因为DVM和JVM的区别,.dex文件和.class文件格式也有很大的不同。在前面的一篇文章里,我介绍了Classpy,用它可以很直观的观察.class文件。经过一番修改之后,现在它也可以打开.dex文件了,下面是几幅屏幕截图:

用Classpy分析.dex文件_第2张图片

-

用Classpy分析.dex文件_第3张图片

下载和运行Classpy

可以克隆Gradle项目自己编译,也可以下载可执行jar双击运行。但是注意,需要Java8环境!另外要注意,打开稍微大一点的文件,Classpy就会很慢,不知道是不是JavaFX的原因 :(



你可能感兴趣的:(java,android,dex)