Android APK反编译必看

来源:互联网 发布:数据库服务器选购 编辑:程序博客网 时间:2024/05/06 19:41

   反编译属于逆向工程中的一种,反编译有许多高级的手段和工具,本篇文章结合网上的资料以及相关的书籍来让读者有一个初级的反编译手段,毕竟对于一个开发人员来说反编译并不是本身锁擅长的东西,所以没有必要花大量的时间来进行研究一些高级技巧。这里主要介绍使用dex2.jar 和jd-gui来反编译apk的方式,另一方面是介绍使用apktool来对apk进行二次打包的方式。

下面是这三个反编译工具的下载地址:
apktool: http://ibotpeaches.github.io/Apktool/
dex2jar: http://github.com/pxb1988/dex2jar

jd-gui: http://jd.benow.ca/

网上的这样资源工具也很多,也可以直接从网上下载。

一:使用dex2jar和jd-gui反编译 APK

  Dex2.jar 和 jd-gui在很多操作系统上都可以使用,这篇文章只是介绍window和Linux上使用方式。Dex2.jar是一个将dex文件转换为jar包的工具,它在window和Linux上都有对应的版本,dex文件来源于apk。将apk通过zip包的方式解压缩即可提取出里面的dex文件。有了jar包还不行,因为jar包中都是class文件,这个时候还需要jd-gui将jar包进一步转换为java代码,jd-gui仍然支持Window和Linux,不管dex2.jar还是jd-gui.他们在不同的操作系统中的使用方式都是一样的。

  Dex2jar是命令行工具,它的使用方式如下:

  Linux(Ubuntu): ./dex2jar.sh classes.dex
  Windows: dex2jar.bat classes.dex
Jd-gui是图形化工具,直接双击打开后通过菜单打开jar包即可查看jar包的源码,首先:将apk后缀改为.zip后解压提取里面的classes.dex文件,接着通过dex2.jar反编译classes.dex,然后通过jd-gui打开反编译后的jar包。
   你也可以这样:首先将apk文件后缀改为zip并解压,得到当中的classes.dex,它就是java文件编译再通过dx工具打包而成的,将classes.dex拷贝到dex2jar.bat所在目录dex2jar-0.0.9.9目录。在命令行下定位到dex2jar.bat所在目录,执行

dex2jar.bat classes.dex

当然如果你是linux或mac系统的话就要用d2j-dex2jar.sh这个文件。

生成classes_dex2jar.jar 然后,进入jdgui目录双击jd-gui.exe,打开上面生成的jar包classes_dex2jar.jar,即可看到源码了,例如以下图:

  二.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件

  工具下载:
在http://code.google.com/p/android-apktool/下 载获得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包都要下。
步骤:
1.解压缩下载的两个文件包,apktool-install-windows-2.1_r01-1.zip解压缩后得到的包里有aapt.exe 和apktool.bat.(注意要把apktool-1.0.0.tar.bz2解压后的一个.jar 文件copy进来)
2.打开命令窗口 (开始 > 运行,输入cmd,回车。)进入到apktool.bat的文件夹里。
输入:apktool d C:\***.apk C:\***文件夹
(命令行解释:apktool d 要反编译的文件 输出文件夹)
特别注意:你要反编译的文件一定要放在C盘的根目录里,
3.打开 C:\***文件夹 就可以得到我们学院的各种资源了。

 三.将反编译完的文件重新打包成apk
很简单,只要输入:
apktood b c:***文件夹(你编译出来文件夹)

 四:图形化反编译apk

 上述步骤一、二讲述了命令行反编译apk,如今提供一种图形化反编译工具:Androidfby
首先,下载上述反编译工具包,打开Androidfby目录,双击Android反编译工具.exe,就能够浏览打开要反编译的apk

 

0 0
原创粉丝点击