深入解析Android Dalvik虚拟机与Dedexer工具

下载需积分: 9 | PDF格式 | 251KB | 更新于2024-07-19 | 115 浏览量 | 0 下载量 举报
收藏
"这篇文章主要介绍了如何使用Dedexer工具理解Dalvik字节码,以及Android应用程序在Dalvik虚拟机中的生命周期。" Android系统是由Linux内核和Java语言构建的平台,但Android并不等同于Java。Google在Android中并未使用Java这个术语,而且它的应用模型与任何Java标准(JSR)无关。核心部分,Android采用了专有的Dalvik虚拟机来执行应用程序,它与Linux的进程访问权限系统相结合,以实现应用间的隔离。 Dalvik虚拟机拥有自己独特的字节码格式,与传统的Java字节码有所不同。在Android中,Java应用程序的生命周期如下: 1. 开发者用Java语言编写源代码。 2. 源代码通过Java编译器编译成`.class`文件。 3. 接下来,Android SDK中的`dx`工具(dexer)将这些`.class`文件转换为Dalvik的私有格式。 4. 这个转换的结果是一个名为DEX的专有文件,其中包含了Dalvik字节码。 Dedexer工具在此背景下扮演了关键角色。它是用于分析和反汇编Dalvik字节码的工具,对于理解APK的结构、应用程序的运行机制以及调试和优化Android程序非常有用。通过Dedexer,开发者可以查看类、方法和指令,这有助于深入理解应用程序在Dalvik虚拟机内部的工作原理。 此外,了解Dalvik字节码对于进行性能优化、安全分析和逆向工程也至关重要。例如,通过分析字节码,开发者可以识别潜在的内存泄漏、性能瓶颈,甚至可以检测到恶意代码的行为。Dedexer提供的洞察力使开发者能够更有效地调试和改进他们的Android应用。 理解Dalvik虚拟机及其字节码格式是深入掌握Android开发的关键。Dedexer工具提供了一种直观的方式,使得开发者可以查看和理解Dalvik字节码,从而提升开发和维护Android应用的效率。通过这篇文章,读者将能够更好地理解Android应用的生命周期,以及如何利用Dedexer工具增强对Dalvik字节码的理解。

相关推荐

filetype
【概括介绍】 Dalvik字节码编辑器是一个强大安卓程序修改器,它运行在手机上,并且免费,主要用来汉化破解。 【基本介绍】 使用本工具需要基本编程经验和安卓的程序知识,我们知道安卓上的程序,大部分是用java开发的,编译生成字节码,这就注定程序更易于破解。传统的破解很麻烦,要在pc上进行,搭建开发环境,反编译dex代码回java,修改后,再编译成dex(困难),打包apk Dalvik字节码编辑器则选择了完全不同的技术路线.既然java编译字节码,而字节码的文档是公开的,那就能够直接解释字节码,在程序上进行修改,就不用反编译/编译的繁琐过程,也不用java的复杂开发环境(类的的工具有八神的apk编辑器,要收费) 【使用方法】 首先从Lcom/lonelycatgames/Xplore/Browser;类入手,打开这个类,然后打开on*方法,可发现这段代码 1. 复制代码 这段代码大概意思是,判断软件是不是从安卓商店下载的,如果不是则得到当前系统时间并和作者设定的时间作比较,在设定的范围之内可以用,否则弹出去安卓商店下载之类的提示。如果是从商店下载的则直接跳过时间比较 这样我们只要修改 isInstalledFromMarket方法的返回值就行了,可发现isInstalledFromMarket方法在 Lcom/lonelycatgames/Xplore/BrowserUtils;类里面。 找到该类并打开,找到 isInstalledFromMarket方法打开,在return v2之前加入const/4 v2 1,也就是一直让这个方法返回true,保存.... 破解Total*er 打开Lcom/ghisler/android/Total*er/Total*er;类(也就是到 /com/ghisler/android/Total*er/目录下,打开Total*er), 找到on*方法打开,可发现 2.复制代码 大概意思就是当前时间与作者设定的时间作比较,如果超过设定时间就弹出Dialog提示,且不能继续使用。 看这段代码 if-lez v0 :label_1094这是程序跳转的关键点,判断寄存器v0的值是否 看这段代码 if-lez v0 :label_1094这是程序跳转的关键点,判断寄存器v0的值是否小于等于0,如果成立,跳转到label_1094(也就是可以继续使用)所以只要让v0的值不大于0就行了,在 if-lez v0 :label_1094前面加上const/4 v0 0。保存.... 去除QQ2011升级提示 用dalvik字节码编辑器v1.2版打开QQ2011,之后打开classes.dex/ com/ tencent/ secure/ jni/ SecureEngine/ Methods/<init>里的校验代码,在if-nez v0 :label_19上面加上const/4 v0 1然后 按功能键 保存代码,再按两次返回键,按功能键 保存Dex, 打开META-INF文件夹删除里面的ANDROID.RAS和ANDROID.SF。按功能键 保存。 修改到此完成。
435 浏览量
filetype
84 浏览量