Android应用程序通常使用Java语言编写,并在Dalvik虚拟机(DVM)中运行。DVM是一种完全不同于经典Java虚拟机(JVM)的虚拟机机制,它由Google开发,并专门针对移动操作系统(尤其是Android平台)的特性进行了优化。通过一个叫做dx的转换工具,可以将传统的JVM虚拟机中的字节码(.class格式文件)转换为在Dalvik虚拟机中运行的字节码(dex格式)。与DVM不同,JVM使用纯Java类文件。如果你想对Android应用程序实施逆向工程,那么你就必须了解Dalvik字节码的格式,同时还需要对静态和动态状态机制有深入的理解。William Enck 等人通过他们合写的论文《A Study of Android Application Security | Android应用程序安全性研究》,对JVM和DVM字节码的不同之处进行了总结。
最新评论