一、使用apktool 将 apk反编译生成程序的源代码和图片、XML配置、语言资源等文件

  具体步骤:

(1)下载反编译工具包:apktool 官方的打不开

  http://apktool.shoujifans.com/2014/12/21.html 里有网盘下载

  需要下载下边两个文件

  1. apktool1.5.2.tar.bz2
  2. apktool-install-linux-r05-ibot.tar.bz2

(2)将下载好的两个包解压到“同一个”文件夹apktool里面。 注意是同一个

(3)在命令行下定位到apktool文件夹,输入以下命令:java -jar apktool.jar d android.apk,出现如图所示:说明反编译成功

java -jar apktool.jar d [apk文件 ] [输出文件夹],输出文件夹是可选的,如果没有指定输出到哪个文件夹下,那么默认是当前文件夹。

我是执行 ./apktool d xxx.apk 成功的

d表示decode,在当前目录下就会生成一个名为xxx的目录,里面就是反编译出来的各种资源文件,其中res表示资源文件,smali表示源代码,不过是字节码,不能直接查看。

二、下载apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件

  具体步骤:

(1)下载dex2jar

dex2jar 下载地址:
   http://sourceforge.net/projects/dex2jar/files/?source=navbar

(2)将 要反编译的apk文件解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的

(3)在命令行下定位到dex2jar-2.0文件夹,运行
        sh dex2jar.sh ~/apk/classes.dex(dex文件的目录)
        最终生成
        classes_dex2jar.jar,如图所示:

dex2jar-2.0版本,解压出来的目录下只有 d2j-dex2jar.sh,没有dex2jar.sh。执行了一下,报错。

下载了旧版本,执行成功。。。后来把2.0下的文件替换到旧版本中了

三、使用JD-Eclipse插件打开class文件

(1)这时候得到了 jar文件。可以下载JD-GUI。也可以下载Eclipse中的插件JD-Eclipse。打开jar文件中的.class文件

(2)参考博文 http://my.oschina.net/mynote/blog/85083 的安装方法

JD-Eclipse的地址http://java.decompiler.free.fr/?q=jdeclipse

OSC地址:http://www.oschina.net/p/jd-gui

在线安装的地址 http://java.decompiler.free.fr/jd-eclipse/update

下载镜像文件的地址:   http://jd.benow.ca/jd-eclipse/downloads/jdeclipse_update_site.zip

(3)采用的是镜像文件的安装。

安装过程:

Help—>Install new Software—>add—>Archive(选择zip文件)/填写url —>选择安装

(4)重启后配置class默认打开方式(Class file Editor)  但是我重启Eclipse发现不用配置,配置好了。其实就是把默认的打开方式设置为Class file Editor。

window—>Preferences—>General—>Editors—>File Associations—>(选择)*.class without source——>(在下面的Associated editors栏目中)add—>Class file Editor(选择添加)—>(选择新的打开方式选择默认)Default

配置如图:

这时候已经可以打开jar包中的class文件了

最新文章

  1. linux服务器TCP并发连接数优化
  2. java并发编程读书笔记(1)-- 对象的共享
  3. 背水一战 Windows 10 (8) - 控件 UI: StateTrigger
  4. JAVA实现打印机
  5. CentOS安装Erlang
  6. hdu 3152 Obstacle Course
  7. [POJ3061]Subsequence(二分,前缀和)
  8. Simofox 2.7 - 基于 pcxFirefox 定制(停更)
  9. VS2010使用TeeChart5的ColorGrid绘制一维距离像
  10. facebook登录(集成FBSDKLoginKit) result的isCancelled总是YES token为nil
  11. Handler消息机制实现更新主UI
  12. C# 语言规范_版本5.0 (第2章 词法结构)
  13. React + Node 单页应用「二」OAuth 2.0 授权认证 & GitHub 授权实践
  14. 【easy】561. Array Partition I
  15. JavaScript入门(基础)
  16. cocos2d JS 源生js实现each方法
  17. [dedecms]隐藏栏目不生成静态页面
  18. 性能瓶颈之Mapping
  19. Linux NFS挂载
  20. oracle中如何只查询一条复合条件的记录,即查到一条记录就返回(转)

热门文章

  1. 使用<s:property value="4"/>是报错
  2. Spinner使用一
  3. hive从查询中获取数据插入到表或动态分区
  4. 一直想写的关于tarjan算法的理解——向struct edge大佬低头
  5. SQL使用指南(1)—— 数据定义语言(DDL)
  6. codewar代码练习2——7级晋升6级
  7. C中的时间函数的用法
  8. Spring通过注解方式实现定时任务
  9. 《Javascript高级程序设计》阅读记录(三):第五章 上
  10. h5废弃的标签和属性及新增的标签和属性