反编译所需工具

1.AXMLPrinter.jar

2.d2j-dex2jar.bat

3.查看Jar包的GUI工具

★功能实现

解压缩

apk文件其实就是一个MIME为zip的压缩包,可以用winrar软件打开看到里面的文件结构。解压缩后找到里面的classes.dex文件,classes.dex文件就是java文件编译再通过Dalvik须立即提供的dx打包工具打包而成的,接下来就用2个工具来逆向导出java源文件。

生成jar文件

将d2j-dex2jar.bat和classes.dex放到同一目录下,Windows cmd下用命令定位到classes.dex所在目录,运行d2j-dex2jar.bat(空格)classes.dex生成classes-dex2jar.jar。

JD-GUI查看源码

GUI工具打开该jar包即可查看源码。

★xml文件反编译

从凡百脑以学习最多内容多半是布局文件的学习,一个优秀的程序的UI的设计是精巧的,非常值得学习。

针对性的查看xml文件

将AXMLPrinter.jar文件和所有要反编译的xml文件放到同一目录下cmd定位到该目录,执行以下代码:

java-jar AXMLPrinter2.jar xxx.xml>yyy.txt

用这样的代码执行AndroidManifest.xml文件的反编译时没有问题的,但是在执行布局文件的反编译的时候,可能会报如下错误:

问题在于:在AndroidMainfest.xml文件中minSdkVersion <= 7 时,利用AXMLPrinter2.jar 就能正常反编译出xml文件

大于7以后就不能正常反编译xml文件(AndroidManifest.xml除外)

参考:http://hi.baidu.com/ghcghc/item/ecbaa1ce997cb225a0b50ac2

android apk反编译的更多相关文章

  1. Android apk反编译基础(apktoos)图文教程

    本文主要介绍了Android apk反编译基础,使用的工具是apktoos,我们将用图文的方式说明apktoos工具的使用方式,你可以参考这个方法反编译其它APK试试看了 很久有写过一个广工图书馆主页 ...

  2. 【转】Android APK反编译就这么简单 详解(附图)

    转载地址:http://blog.csdn.net/vipzjyno1/article/details/21039349 在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂 ...

  3. Android APK反编译详解(附图)

    转载自http://blog.csdn.net/sunboy_2050/article/details/6727581 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而 ...

  4. Android APK反编译easy 详解

    在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用 ...

  5. Android APK反编译就这么简单 详解(附图)

    在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用 ...

  6. Android APK反编译详解(附图)(转)

    这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程. 在此郑重声明,贴出来的目的不是为了去破解人家的软件, ...

  7. (转)Android APK反编译详解

    转载地址:http://blog.csdn.net/ithomer/article/details/6727581 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到 ...

  8. Android APK反编译具体解释(附图)

    这段时间在学Android应用开发,在想既然是用Java开发的应该非常好反编译从而得到源码吧,google了一下,确实非常easy,下面是我的实践过程. 在此郑重声明,贴出来的目的不是为了去破解人家的 ...

  9. Android APK反编译详解(非常有用)

    如何学习最快呢?无疑是通过研究别人的源代码? 但是,获取别人的源代码,比较困难.本文,仅限于用于学习开发. 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧 ...

  10. Android APK反编译就这么简单 详细解释(简介)

    学习Android开发过程,你会向别人学习如何应用软件的开发,那些漂亮的动画和复杂的布局可能让你爱不释手,作为开发者.你可能真的想知道的是如何实现的界面效果.然后.您将能够更改应用程序APK反编译查看 ...

随机推荐

  1. java.util.concurrent-------TimeUnit

    java.util.concurrent并发库是JDK1.5新增的,其作者是Doug Lea ,此人是个BOSS级别的天才人物了.有了他提供的类库,使得我们对多线程并发.锁有了很大的帮助,减少了并发难 ...

  2. 获取客户端IPAsp.Net

    #region 获取客户端IP地址 /// <summary> /// 获取客户端IP地址 /// </summary> /// <returns></ret ...

  3. hdu 5015 大数量反复类似操作问题/ 矩阵高速幂

    题意: 给一个矩阵a,第一行是 0. 233,2333,23333.....第一列读入.列数<10^9.行数<=10. 先转化操作: m是大数量.必定每次向前推一列.就是每次乘一个矩阵T. ...

  4. Unity Interface Serialization-Expose Interface field In Inspector

    Unity has some quirks about their inspector, so as a preface they are listed here: If you add a [Ser ...

  5. 手把手教你安装QT集成开发环境(操作系统为ubuntu10.04)

    在安装QT集成开发工具包之前需要先安装build-essential和libncurses5-dev这两个开发工具和库,libncurses5-dev库是一个在Linux/Unix下广泛应用的图形函数 ...

  6. Troubleshooting:lvm调整分区时“Error parsing metadata for VG fedora”的解决

    磁盘满了,由于使用的是lvm,想要扩容时发现无论lvs还是lvdisplay这类命令都会报同样的错: [root@localhost qwang]# lvs Parse error at (line ...

  7. RAC 11.2.0.4 安装 遇到 INS-06001

    今天安装11.2.0.4的grid软件,在配置passwordless SSH的时候,点击setup 出现此错误 开始网上搜了一把.说什么的都有,什么系统bug啊什么的 但是我另外一套rac却很正常就 ...

  8. 关于wxFileSystemWatcher输出文件名的解决方法

    本文针对的wxWidgets版本: 2.9.4, 2.9.5,其他版本未作测试. 如果要使用 wxFileSystemWatcher 并且让其产生的wxFileSystemWatcherEvent 事 ...

  9. 《C陷阱与缺陷》整理二

    1.数组名作实參     在C语言中,我们没有办法将一个数组作为函数參数传递,假设我们使用数组名作为參数.这个时候数组名立马会被转换为指向该数组的第一个元素的指针.     关于这一点的理解能够向前深 ...

  10. 从M个数中随机选出N个数的所有组合,有序,(二)

    这就是数学中的 A m n 的选取. 共有   m!/n!种可能.. 同样举一个例子吧.. 从12345这五个数字中随机选取3个数字,要求选出来的这三个数字是有序,也就是说从12345中选出来的是12 ...