Android拿来主义 - 反编译apk文件

前言

今天给大家分享一下Android中的拿来主义,我们时常会碰到自己觉得很有用的应用(apk),想同过此应用来学习,尝试用WinRAR等之类的工具查看,目录通常是这样的。

当然res里面的图片是可以拿来用的,但是layout里面的布局及权限文件(AndroidMainfest.xml)却是一堆乱码,完全看不懂,想看看别人的布局都不容易。还有源代码也被编译成classes.dex,完全看不出什么线索。基于以上困惑,给大家分享一下Android中的拿来主义。

所需的工具

开始拿来主义

  • AXMLPrinter2反编译前台设计布局

    用AXMLPrinter2.jar查看apl中的布局文件

    为了方便起见,将所下载的相关工具放在 D:\Android 中。将你找到的应用程序的apk用WinRAR等工具打开,将res/layout/main.xml解压出来(也放到D:\Android),打开main.xml文件,内容如下(一堆天文)

    这时候AXMLPrinter2.jar 派上用场,打开cmd终端,进入d:\Android目录下,输入如下命令:java -jar AXMLPrinter2.jar main.xml > main.txt

    代开main.text开别人的代码吧!!

  • dex2jar反编译资源

    用 dex2jar 中的 dex2jar.bat生成jar文件

    在cmd下进入dex2jar.bat所在路径,然后输入“dex2jar.bat XXX”,XXX指的是你要反编译的apk中的classes.dex文件所在路径及名称

    比如:我的dex2jar.bat在D:\Android\apk_decode \dex2jar-0.0.7-SNAPSHOT路径下, classes.dex在D:\Android下,输入命令:dex2jar.bat D:\Android\classes.dex

    此时在D:\Android目录下会生成一个JAR文件。

  • jad反编译后台代码

    用jad工具将.class文件反编译成.java文件

    将上面生成的jar文件解压出来,会看到相关的.class文件,这是用jad 将.class文件反编译成.java文件 输入命令:jad example.class

    (examples.class是文件解压出来的文件)

这时候生成的是一个jad的文件,只要将后缀名改成java就行了!!


标签:dex2jar jad AXMLPrinter2