逆向工程androidAPK(待补充)

一、说明

Android工程经过Dalvik 二次编译打包后会声称后缀名为apk的压缩包文件,此文件可以通过 rar 之类的压缩文件进行解压 目录结构如下

其中classes.dex 就是android项目的源码部分

二、下载工具

逆向需要工具如下

1、dex2jar:http://code.google.com/p/dex2jar/downloads/list (用于将apk中的class.dex文件反编译为jar包)

2、jd_gui:  http://java.decompiler.free.fr/?q=jdgui(将jar反编译为.java文件)

3、apktool: http://code.google.com/p/android-apktool/downloads/list (提取apk中的资源文件)

下载注意事项:

1、根据自己的系统平台下载对应版本的工具,dex2jar貌似不支持Mac OS,其他两种工具支持Windows,Linux,Mac OS。

2、apktool必须下载apktool-1.3.2.tar.bz2(目前最新版)和apk_install_系统平台_版本号.tar.bz2,为什么要这样,后面阐述。 

     至此,万事具备,不过还差东风,我们的东风就是需要一个.apk文件,这个简单,不解释。下面说明apk逆向工程的详细步骤。

三、逆向步骤

友情提示:以下步骤默认的是Ubuntu下的操作。

1 修改apk文件的扩展名改为.zip,并解压,获取其中的class.dex文件。 

2、利用dex2jar从class.dex中反编译出jar包

     解压下载的dex2jar文件的压缩包,将class.dex文件拷贝到解压后的目录下,该目录下的dex2jar.sh适用于Linux平台,dex2jar.bat适用于Windows平台。将终端切换到该目录下,执行命令:./dex2jar.sh class.dex,即可在当前目录下生成一个默认名为class.dex.dex2jar.jar的jar包。如果在windows下,通过命令行执行:./dex2jar.bat class.dex即可,或直接把class.dex拖到dex2jar.bat文件也可。顺便提一下,如果不想将class.dex文件拷贝到该工具的目录下,重要在命令行中指定class.dex文件的具体路径即可。

3、利用jd_gui从步骤2中生成的class.dex.dex2jar.jar包中反编译出.java文件

     jg_gui是个绿色软件,无须安装,解压即可。这是一款界面化的工具,打开之后,利用File->Open File打开class.dex.dex2jar.jar,然后选择File->Save All Sources,并指定存放路径即可,默认生成一个.zip的压缩包。

到此为止,apk中的源码文件已经提取出来,全部是.java文件,不过,遗憾的是,这样恢复出来的并不是完整的工程,只是一些java文件,而且原工程中的很多资源现在只能看到一串数字代号,不知道那是个什么东西,其它也有很多不是很懂的表示方式,不过大概的代码结构还是可以看清的,对于只需要了解局部的实现小技巧而言,分析这些文件还是可以的。

4、利用apktool提取apk中的资源文件

     前面提到,需要apktool需要下载两个压缩包,其中,apktool1.3.2.tar.bz2里面是一个jar包,而apktool_install_系统平台_版本号.tar.bz2里面则是一个名为apktool的脚本,该脚本的执行以来apktool1.3.2.tar.bz2里面的jar包。实际做法是将apktool1.3.2.tar.bz2解压,将里面的jar包拷贝到apktool_install_系统平台_版本号.tar.bz2解压后的目录,即与apktool脚本位于同一目录下。然后执行如下命令:

./apktool d apk路径/XXX.apk,默认在当前目录生成一个与apk同名的目录,里面就是apk中包含的资源文件了。

四、其他一键式逆向工具

-以下工具2.2之前比较好用,但目前可用度不高(仅做保留)-

Android反编译工具绿色版V2.0(改进版)

http://morry.iteye.com/blog/776718

Android反编译工具绿色版V2.1(改进版)
http://morry.iteye.com/blog/924137

-----------------------------------------------------------------
四。防止反编译(混淆)
http://www.maxhis.info/androiding/protect-apk-from-decompile/

  

原文地址:https://www.cnblogs.com/Joker_/p/2936087.html