Android反编译

前言

        最近比较闲,昨天在一篇博客中看到了Android的反编译,可是我自己从没尝试过反编译,于是今天好好试了试,从网上看到好多反编译的工具包及博客,可是编译的时候总是报错,于是想起了以前看的一篇微信公众号推送的文章讲的是反编译,迅速找到这篇文章,按照流程,最终反编译成功,记录下这个令人兴奋的过程,参考的微信公众号是:Android开发中文站,文章是“Android APK反编译就这么简单详解(图文详解)”。

反编译工具

  apktool、 dex2jar、 jd-gui

apktool:获取资源文件,可以提取出图片文件和布局文件,下载地址:  https://bitbucket.org/iBotPeaches/apktool/downloads/

dex2jar:将apk反编译成Java源码(classes.dex转成jar文件),下载地址:        https://sourceforge.net/projects/dex2jar/files/

jd-gui:查看工具,可以查看通过dex2jar转成的.class文件(源码文件),下载地址:http://jd.benow.ca/

反编译的APK是test.apk

反编译过程:

    1.用apktool反编译出图片文件和资源文件

      首先解压下载的最新的apktool的jar包,我下载的是apktool_2.2.4.jar

      然后把下载的jar包和test.apk放在同一个文件夹下,打开cmd,输入: java -jar apktool_2.2.4.jar d test.apk  即可反编译,如下图:

Android反编译_第1张图片

      在文件夹下多了一个test的文件夹;

Android反编译_第2张图片

        res便是所有的资源文件,还得到Manifest.xml,smali文件夹下全是**.smali文件,即JVM语言文件。

      2.反编译出.java的类

        首先把要反编译的apk的后缀名改成.rar或.zip,不知道怎么修改后缀名的可百度,然后重新解压,(可以发现,解压后我们也可以得到资源文件),然后得到class.dex这个文件。

          下载

            然后解压,把刚刚得到的class.dex这个文件放到解压后的目录中,如:解压并放入class.dex文件后的目录为:

Android反编译_第3张图片

                运行命令行工具cmd,进入dex2jar-2.0这个目录,运行命令:d2j-dex2jar.bat  classex.dex,如下图:

                命令行工具会出现:

                结束后,即完成,得到:classes-dex2jar.jar,目录如下图:

Android反编译_第4张图片

                  然后下载jd-jui,

                  解压后直接打开jd-jui.exe,然后打开刚才的classes-dex2jar.jar,即可看到源码。

你可能感兴趣的:(Android反编译)