Android反编译工具与反编译步骤及常见问题

Android代码混淆很大程度上就是为了别人反编译我们的代码,用反编译工具也可以测试我们的代码是否混淆成功。

“工欲善其事,必先利其器”,先介绍一下反编译的工具:

apktool、dex2jarjd-gui,这里是下载链接:Android反编译工具集

大概的用法与步骤是:用apktool可以获得apk中的资源文件,用dex2jar可以获得apk中包含java代码的jar包,通过jg-gui可以打开jar包中的java代码。

反编译开始:

一、反编译资源文件

         解压工具包,打开apktool文件夹,看到下图文件:

                                  Android反编译工具与反编译步骤及常见问题

         将需要反编译的.apk文件也放在这个文件夹里,打开命令行界面(cmd),定位到apktool文件夹(用cd命令)

         接着输入命令:apktool  d  -f test.apk(这里是需要反编译的apk的名字) -o testfile(这个是反编译出的资源文件需要存放的文件夹的名字)

          注:此处有一点需要注意,网上有说输入命令:apktool.bat d -f test.apk test的,但是运行之后会提示错误:input file was not found or was not readable,这是因为版本原因导致的报错,用上面的apktool工具和命令,就不会出现这种情况了。

Android反编译工具与反编译步骤及常见问题

           运行结束后, 再来看文件夹,会发现多了一个testfile文件夹,里面有反编译出的资源文件。

                                Android反编译工具与反编译步骤及常见问题

                                Android反编译工具与反编译步骤及常见问题

                                  Android反编译工具与反编译步骤及常见问题

二、反编译源代码

           打开压缩文件后,找到里面的dex2jar-0.0.9.15文件夹。

  将需要反编译的apk文件后缀名改为.rar或.zip,解压获得一个文件夹, 打开这个文件夹

                                 Android反编译工具与反编译步骤及常见问题

 将文件夹里面的classes.dex复制到dex2jar-0.0.9.15文件夹中。

 在命令行定位到dex2jar.bat所在目录,输入dex2jar.bat classes.dex,运行

                           Android反编译工具与反编译步骤及常见问题

Android反编译工具与反编译步骤及常见问题

 运行结束后,会发现原本的目录下多了一个classes_dex2jar.jar文件

                              Android反编译工具与反编译步骤及常见问题

 打开jd-gui-0.3.5.windows文件夹,运行里面的jd-gui.exe

                          Android反编译工具与反编译步骤及常见问题

 在菜单栏File里打开刚才生成的classes_dex2jar.jar文件。

                     Android反编译工具与反编译步骤及常见问题

 就能得到apk中的java文件了。

                       Android反编译工具与反编译步骤及常见问题

                 Android反编译工具与反编译步骤及常见问题