
Android
Android的APK应用程序由于其代码是托管在Dalvik虚拟机上,因此很容易进行反编译。之前我曾撰写过一篇介绍如何将
Android APK包反编译为可识别代码的文章,最近又有一种新的方法出现,可以直接从APK包中的classes.dex文件将DEX码反编译为
Java标准.class二进制码。下面将详细介绍该方法。首先我们需要使用工具dex2jar和jd-gui。其中,dex2jar用于将classes.dex文件转换为
Java标准.class二进制码,而jd-gui则可以将标准.class二进制码反编译为
Java源码。首先从APK包中提取出classes.dex文件,保存在指定目录下。然后,在命令行中执行以下命令:
"Java -jar dex2jar.exe classes.dex"
这样就会生成一个名为classes.dex.dex2jar.jar的文件。接下来使用jd-gui打开它,如下图所示

Java
可以看出,在生成的.class二进制码几乎跟自己程序的源码一样。提供这个反编译方法主要是为了让大家学习和研究之用。当然,请大家不要滥用此方法从事恶意活动,毕竟别人辛辛苦苦编写程序也不容易。通过此方法可以大致了解别人程序的逻辑、架构等方面,希望对大家有所帮助。以下是逆向APK程序的总结:首先需要搭建
Java运行环境(jdk)和逆向工具A
XMLPrinter2.jar用于逆向
XML文件,以及baksmali.jar用于逆向classes.dex文件。由于
Android的.apk文件实际上是一个zip文件,可以直接使用winrar打开。总之,在进行逆向APK程序时,请确保您使用正确的工具,并且仅用于研究和学习目的。