http://blog.csdn.net/vipzjyno1/article/details/21039349

http://blog.csdn.net/zx19899891/article/details/7559201

http://showlike.iteye.com/blog/1686103

我们知道,apk程序实际上是个压缩包,通过解压后发现里面主要是一些xml文件和一个classes.dex文件,xml对应于android工程中的各种原始xml文件,而classes.dex则是由工程中的src下的java文件编译而成,所以我们主要的反编译工作就分别针对xml文件和dex文件来进行。

     1.反编译xml文件

     如果直接解压apk,打开里面的xml文件发现全是些看不懂的乱码,为了能够正常的反编译,首先需要下载一个apktool工具(http://code.google.com/p/android-apktool/),如果是window平台,就要下载apktool1.4.3.tar.bz2和apktool-install-windows-r04-brut1.tar.bz2,然后都解压到同个目录下,这里为了以后使用方便,我直接将其拷贝到sdk的platform-tools,进入命令行,然后进入到你存放apk的目录下,我这里就直接放在d盘根目录下,执行下图所示命令

     其中的mytext是由你任意指定的,执行完后就在d盘下生成一个mytext文件夹,进入该文件夹,打开其中任意个xml文件,你会发现再也没有乱码了,都是你看得懂的。。。另外还有个文件夹smali,这个其实是反编译classes.dex到java文件的一个中间文件类型,虽然能看懂点,可是还是不能像看java文件那么爽,所以就用第二步中的方法单独反编译这块。

     2.反编译classes.dex

     首先下载dex2jar(http://code.google.com/p/dex2jar/)和XJad,同样为了执行方便,我直接将解压后的dex2jar文件夹里的所有内容拷贝到sdk的platform-tools,之后进入命令行,执行如下命令,其中classex.dex文件是用常用的解压缩工具解压apk后得到的。

     执行完后,就在d盘下生成一个classes_dex2jar.jar 包,然后运行刚才下载的XJad中的XJad.exe,依次点击菜单-文件-反编译jar文件,选择刚生成的jar包,稍等片刻后即可在jar同目录下生成一个~classes_dex2jar.jar这样的目录,进入后会发现全是java类型的文件,而且按文件夹都分好类了,这些你都能读得懂。

至此,将1步反编译出的xml文件和2步反编译出的java文件和在一起,就完成了一个apk的反编译工作,你可以尝试各种第三方开发的apk,基本都能解压出来,希望对大家有所帮助。

     所有工具我都打包上传了:http://download.csdn.net/detail/zx19899891/4296409

 

Adnroid 反编译APK的更多相关文章

  1. 反编译apk

    一.反编译Apk得到Java源代码 首先要下载两个工具:dex2jar和JD-GUI 前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源 ...

  2. Atitit.反编译apk android源码以及防止反编译apk

    Atitit.反编译apk android源码以及防止反编译apk 1.1. Tool  apk逆向助手1 1.2. 二.使用dex2jar + jd-gui 得到apk的java源码1 1.3. 用 ...

  3. 反编译APK文件

    有时源代码丢失了,这时如果有apk文件的话,是可以对apk文件反编译得到源文件的,本文介绍一下简单的反编译apk文件的过程. 1.工具 反编译apk需要的工具有两个:apk2java和apktool, ...

  4. ubuntu下使用反编译apk,工具dex2jar和jd-gui

    ubuntu下使用反编译apk, 工具 1:通过apk-tool反编译出资源文件: http://code.google.com/p/android-apktool/ 2.首先使用dex2jar反编译 ...

  5. Android 反编译apk 详解

    测试环境: win 7 使用工具: CSDN上下载地址: apktool (资源文件获取)  下载          dex2jar(源码文件获取) 下载        jd-gui  (源码查看)  ...

  6. Uubuntu 14.04 LTS反编译apk

    使用apktool反编译apk 1.安装apktool apktool是Google提供的APK编译工具,能够反编译及回编译apk,需要Java环境的支持(在此不再赘述Java的安装与配置,详见< ...

  7. Xamarin android如何反编译apk文件

    Xamarin android 如何反编译 apk文件 这里推荐一款XamarinAndroid开发的小游戏,撸棍英雄,游戏很简单,的确的是有点大.等一下我们来翻翻译这个Xamarin Android ...

  8. 如何反编译APK?

    1.概述 一些商业的app都包含很多精美的图片还有一些比较好的配置文件,以前某师兄就说过apk把后缀改为zip,然后解压一下就可以获得很多图片资源,但是这时候你打开一下解压出来的xml资源全是乱码.通 ...

  9. Android 反编译apk

    工具介绍:    apktool 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 下载地址:https://bitbucket.org/iBotPeaches/apktool/downl ...

随机推荐

  1. HDUOJ1060Leftmost Digit

    Leftmost Digit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  2. HDUOJ----湫湫系列故事——减肥记I

    湫湫系列故事——减肥记I Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tota ...

  3. JAXB注解使用[转]

    一.Jaxb处理java对象和xml之间转换常用的annotation有: @XmlType @XmlElement @XmlRootElement @XmlAttribute @XmlAccesso ...

  4. URL 长度有限制吗?

    众所周知,传递小量参数(在没有其他原因,例如隐藏参数值的情况下)推荐使用GET方法,传递大量参数推荐使用POST方法.原因是什么呢? 原因是传说GET方法是通过URL来传递,而URL的长度是受限的,而 ...

  5. wait/waitpid函数与僵尸进程、fork 2 times

    一.僵尸进程 当子进程退出的时候,内核会向父进程发送SIGCHLD信号,子进程的退出是个异步事件(子进程可以在父进程运行的任何时刻终止) 子进程退出时,内核将子进程置为僵尸状态,这个进程称为僵尸进程, ...

  6. EMC测试

    EMC主要包括EMI和EMS

  7. APP三种开发模式

    目前主流应用程序大体分为三种:Web App(网页应用).Hybrid Ap(混合应用)p. Native App(原生应用). nativeapp是一个原生程序,一般运行在机器操作系统上,有很强的交 ...

  8. Action中如何通过@Autowired自动注入spring bean ?

    1.讲Action纳入spring的IOC控制 <!-- 采用注解方式自动扫描装配 --> <context:component-scan base-package="co ...

  9. (Apache)ab 压力测试 简单使用

    该工具在Apache安装目录的bin目录里面.所以想要这个使用这个工具,只需要下载Apache即可.在Window环境下,推荐使用 PhpStudy 工具的集成环境.就可以轻松拥有Apache.ab压 ...

  10. python标准库介绍——6 math模块详解

    ==math 模块== ``math`` 模块实现了许多对浮点数的数学运算函数. 这些函数一般是对平台 C 库中同名函数的简单封装, 所以一般情况下, 不同平台下计算的结果可能稍微地有所不同, 有时候 ...