Android APK文件的逆向反编译

厌伴老儒烹瓠叶,强随举子踏槐花。这篇文章主要讲述Android APK文件的逆向反编译相关的知识,希望能为你提供帮助。
APK是android Package的缩写,即Android安装包(APK)。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。APK文件和sis一样,把android sdk编译的工程打包成一个安装程序文件,格式为apk。
         
APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的简称,即Android Dalvik执行程序,并非java ME的字节码而是Dalvik字节码。
         
APK反编译就是通过使用APK反编译工具将APK文件中的源文件和资源反编译出来,得到的源文件和资源文件可以进行处理后再进行编译,以达到系统解剖分析,个性化定制,汉化等目的。
         
APK反编译有很多工具,本次实验中我们使用dex2jar工具。dex2jar 是一个用来将 Android 的 Dalvik Executable (.dex) format 文件转成 Java 类文件的工具。该项目地址是:http://code.google.com/p/dex2jar/
         
针对JAR包的java反编译工具,我们使用jd-gui工具。jd-gui是针对Java平台的反编译工具,它可以将Java的字节码文件(class文件)反编译获得java文件。反编译得到的代码是非常接近于源代码,但是或多或少与源代码有一些差异,这点需要使用时注意。
实验步骤一
文件解压         
          进入实验环境,在C盘根目录“APK逆向分析实验”文件夹下找到SD-Booster_1.5.2.apk文件。将文件重命名为zip后缀。然后使用WinRAR程序将文件解压。

Android APK文件的逆向反编译

文章图片

 
 
实验步骤二
获得JAR包
          要从APK文件获得JAR包需要使用专门的工具dex2jar。dex2jar 是一个用来将 Android 的 Dalvik Executable (.dex) format 文件转成 Java 类文件的工具。
          首先在C盘根目录“APK逆向分析实验”文件夹下找到dex2jar-0.0.9.15.zip文件,将其解压。
          将APK文件解压获得的classes.dex文件放到dex2jar解压后的文件中。如下图示。
Android APK文件的逆向反编译

文章图片

 
 
然后在该目录下进入Windows命令行窗口。输入命令:
          d2j-dex2jar classes.dex
          执行完成后,在相同目录下得到JAR包。
Android APK文件的逆向反编译

文章图片

 
 
实验步骤三
源代码分析
          要从JAR包进行源代码分析,需要使用反编译工具jd-gui。jd-gui是针对Java平台的反编译工具,它可以将Java的字节码文件(class文件)反编译获得java文件。
          首先在C盘根目录“APK逆向分析实验”文件夹下找到jd-gui文件,双击打开。将JAR包拖入jd-gui窗口,将自动对JAR包进行反编译。
          此时,你可以从jd-gui对JAR包中的文件逐个分析
Android APK文件的逆向反编译

文章图片

 
 
【Android APK文件的逆向反编译】 

    推荐阅读