APK反编译

来源:互联网 发布:iphone 手机铃声软件 编辑:程序博客网 时间:2024/06/05 10:48

        有时候我想要查看别人的app的源代码,这时候就需要使用到反编译,而不能直接导入APK进eclipse的(如果可以,那岂不是盗版很多了?)。首先,APK是可以用压缩工具(WinRAR)进行解压的,解压结果如下图


     其中res文件夹里装的是我们的资源文件(图片)和布局文件,AndroidManifest就是对应android项目里的AndroidManifest,classes.dex就是编译过的源代码,resources.arsc和META-INF这个文件不关我们的事。

下面开始进行反编译

1.下载相关软件

  1)AXMLPrinter2(我的网盘http://pan.baidu.com/s/1milcm9q)

   用途:用来转换.xml文件为文档,这样就可以用记事本查看了。

  2)dex2jar(我的网盘http://pan.baidu.com/s/1nvb6JjV)

   用途:用来转换dex文件为jar文件。

  3)jd_gui(我的网盘http://pan.baidu.com/s/1o8KjZa6)

   用途:用来阅读jar文件的

2.用AXMLPrinter2转换.xml文件

   语法:java -jar  工具名(例如AXMLPrinter2) .xml文件路径>输出文件路径

   详细步骤:首先把下载的工具包解压,并把里面的AXMLPrinter2.jar拷贝到和APK解压后的需要编译的.xml文件同一个文件夹(这样做的目的是在dos命令行下就可以用文件名 代替路径了,因为它们在同 一个目录下),然后在命令行下用CD切换到需要编译的.xml所在目录,最后运行java -jar AXMLPrinter2.jar   .xml文件路径>输出文件路径;例如我们要转换AndroidManifest.xml,如下图

 1)把AXMLPrinter2.jar拷贝到和AndroidManifest.xml文件同一个文件夹



2)切换到AndroidManifest.xml文件所在文件夹,并运行转换命令



3)在AndroidManifest.xml文件所在文件夹里生成了AndroidManifest文件。可以用记事本查看了



3.用dex2jar文件转换.dex文件为.jar文件

  语法:d2j-dex2jar.bat工具所在路径      classes.dex文件路径

  详细步骤:首先把下载的工具包解压,并把里面的dex2jar文件夹拷贝到APK解压后的根目录下,然后在命令行下用CD切换到dex2jar文件夹,最后运行d2j-dex2jar.bat        ../classes.dex,如下图

1)把dex2jar文件夹拷贝到APK解压后的根目录下



2)切换到dex2jar文件夹,并运行转换命令



3)在APK根目录下生成了classes_dex2jar文件。



4.用jd_gui工具查看源代码

   详细步骤:首先解压下载的工具包,然后点击jd-gui应用程序,点击file->open file,添加classes_dex2jar。如下图








0 0