工具介绍:

    apktool

    作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看

     下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads

  dex2jar

    作用:将apk反编译成java源码(classes.dex转化成jar文件)
     下载地址:http://sourceforge.net/projects/dex2jar/files/

  jd-gui

    作用:查看APK中classes.dex转化成出的jar文件,即源码文件
     下载地址:http://jd.benow.ca/

下载完成后如图:

如果上面的文件没有下载成功就自己在其他地方下载,网上搜索下还是很多的,只是注意下比较新的版本就好了哈(版本太旧会导致反编译失败),这里可以将这三个一起下载----> CSDN下载(PS:没有积分的可以直接问我要文件,我也不知道为什么一传上去就默认要5分了)

将【dex2jar-2.0.zip】和【jd-gui-windows-1.4.0.zip】分别解压到当前文件夹,接下来开始使用

1、使用apktool反编译apk得到资源文件

使用cmd将目录切换到当前文件夹的目录下,然后输入

java -jar 【apktool的jar包名称】 d -f  【要反编译的apk路径】  -o 【反编译后保存的文件名】

需要注意如果出现”Input file was not found or was not readable"的问题,

是因为apktool升级到2.0以上时,使用方式已经替换,格式为:apktool d [-s] -f <apkPath> -o <folderPath>

然后目录下生成了对应文件夹,打开里面就是apk的资源文件

2、使用dex2jar反编译apk得到Java源代码

将要反编译的APK后缀名改为.rar或者 .zip,然后解压,得到classes.dex文件(它就是java文件编译再通过dx工具打包而成的)

将获取到的classes.dex放到之前解压出来的工具【dex2jar-2.0】文件夹内:

 在命令行下定位到dex2jar.bat所在目录,输入"d2j-dex2jar classes.dex",效果如下:

在这里的执行过程中如果没报错,那么就表示已经反编译成功了

命令执行完成之后,在当前目录下就可以看到生成的Jar文件:

反编译classes.dex得到classes-dex2jar.jar文件之后,就可以使用【jd-gui】工具将class文件反编译成java源代码了

 

  使用jd-gui打开classes-dex2jar.jar就可以看到源代码了,如下图所示:

  

  JD-GUI虽然可以将class反编译成java源代码,但是对于一些被混淆过的class,反编译的效果就不是那么理想了,被混淆过的class反编译后的效果图(类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名):

  

到这里就OK了,反编译成功。

需要注意的是

出现这个提示时说明你的jdk在1.8或以上,jd-gui只支持到1.7版本,你可以换成用Procyon-Decompiler或其他

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

  1. Android 反编译apk 详解

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

  2. Android 反编译Apk提取XML文件

    Apktool https://ibotpeaches.github.io/Apktool/install/ 下载地址:Apktool https://bitbucket.org/iBotPeache ...

  3. [Android]反编译apk + eclipse中调试smali

    从来没有想过反编译apk是来的如此方便,并且还可以修改后重新编译运行,这比在win下修改pe容易多了,感谢apktool和smali工具的作者提供这么好的工具. 跟踪apk一般的做法是在反编译的sma ...

  4. Android反编译apk并重新打包签名(Mac环境)

    工具下载 apktool :https://ibotpeaches.github.io/Apktool/install dex2jar:https://github.com/pxb1988/dex2j ...

  5. Android反编译APK

    http://blog.csdn.net/vipzjyno1/article/details/21039349/ 关于被加壳工具添加我的apk如何脱壳 http://www.blogfshare.co ...

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

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

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

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

  8. Android反编译(未混淆的apk)

    Android反编译(未混淆的apk) 工具 dex2jar 下载地址:我的CSDN 或者 官网 jd-gui 下载地址:我的CSDN 或者 官网 反编译步骤 1. 将APK解压缩,获取classes ...

  9. Android基础新手教程——1.10 反编译APK获代替码&amp;资源

    Android基础新手教程--1.10 反编译APK获代替码&资源 标签(空格分隔): Android基础新手教程 本节引言: "反编译Apk".看上去好像好像非常高端的样 ...

随机推荐

  1. Java代码优化小结(三)

    (35)对资源的close()建议分开操作虽然有些麻烦,却能避免资源泄露.我们想,如果没有修改过的代码,万一XXX.close()抛异常了,那么就进入了catch块中了,YYY.close()不会执行 ...

  2. Spring使用笔记(三) 高级装配

    高级装配 一.环境与Profile 一)配置profile bean 环境的改变导致配置改变(需求:通过环境决定使用哪个bean),可以通过Spring的Profile解决. Profile可以在程序 ...

  3. JavaScript基础笔记(九)事件

    事件 一.事件流 事件流描述的是从页面中接收事件的顺序. 一)事件冒泡 IE的事件流叫做事件冒泡,即事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点. 如:div------>b ...

  4. Hass.io: add-on Samba

    { "workgroup": "WORKGROUP", "name": "hassio", "guest&qu ...

  5. 考前停课集训 Day5 累

    Day 5 今天不考试 因此自己订正+刷题 我就当日记来写吧 昨天棕名了…… 所以借了同学的号打题 NOIP前的崩心态啊QAQ 希望一切安好

  6. 移动游戏ui设计(一)

    游戏世界 游戏界面就是根据游戏特性,把必要的信息展现在游戏主界面,操控界面和弹出界面上,通过合理的设计引导用户进行人机交互操作: 1, 游戏界面设计原则:交互设计尽量不要繁琐,用最简单的方式引导用户即 ...

  7. react-native 集成极光推送jpush-react-native时的小问题

    android的一个报错 ... set canOverrideExistingModule=true 解决: 问题是在/android/app/src/java/.../MainApplicatio ...

  8. 解压文件出错解决方法(invalid compressed data--format violated)

    解压缩出现这个报错: 1.考虑是否传输过程出错,重新传输试试. 2.使用传输工具时,选择二进制试试. 3.使用传输工具时,选择ASCII试试. 解压缩命令: gzip  -d filename gun ...

  9. Linux命令之vi篇

    作业二: 1)  使用vi编辑器编辑文件/1.txt进入编辑模式写入内容“hello world” [root@localhost ~]# vi 1.txt 2)  进入命令行模式复制改行内容,在下方 ...

  10. IO流(2)—知识结构

    结构: 注:此IO包下主要介绍: 节点流:(字节流)FileInputStream.FileOutputStream.(字符流)Filereader.FileWriter 处理流(缓冲流):(字节流) ...