Step 1 获取classes.dex
将apk的后缀修改为zip,解压缩后会生成如下两个文件夹和三个文件

META-INF res res文件夹下包含图片,音频,字库等资源,及处理后的布局文件,暂时按下稍后会有文章介绍解决方法 AndroidManifest.xml 打开AndroidManifest.xml会发现是乱码,暂时按下稍后会有文章介绍解决方法 classes.dex 这个文件就是我们的目标,classes.dex是java源码编译后生成的java字节码文件.但由于Android使用的dalvik虚拟机与标准的java虚拟机是不兼容的,dex文件与class文件相比,不论是文件结构还是opcode都不一样. resources.arsc 文本资源管理,有专门的工具(ArscEditor)可以进行处理
Step 2 从classes.dex转制成jar文件 首先下载工具dex2jar 下载地址为 http://code.google.com/p/dex2jar/downloads/list这个工具可以将classes.dex文件转换成jar文件。 接压缩之后在命令行里,指定到解压缩的目录,运行如下脚本

就会在你的dex2jar目录下生成classes-dex2jar.jar文件
Step 3 使用jd-gui获取java代码 jd-gui是一个java反编译软件可以从 http://java.decompiler.free.fr/?q=jdgui下载 打开jd-gui 读取刚刚生成的classes-dex2jar.jar,点击Save All Sources生成源代码的zip包。
这种方式反编译安卓代码,有这么几个问题
  1. 大部分代码都会经过混淆处理,代码阅读性差
  2. jd-gui在解释switch case时候会出现逻辑错误

更多相关文章

  1. android数据保存
  2. 使用gradle来编译生成apk
  3. ActionBarSherlock的使用一
  4. Chronometer
  5. Android(安卓)Studio插件GenerateFindViewById
  6. 数据存储之SharedPreferences存储——第一行代码Android学习笔记
  7. Android手势滑动实现ImageView缩放图片大小
  8. android 中ids.xml资源的使用
  9. android 中断点续传理解

随机推荐

  1. android中文api(80)——Gallery.LayoutPa
  2. Android,Linux的一些资源
  3. Android中一个单行与多行并存的listview
  4. android PopupWindow 底部阴影外部空间取
  5. ActionBarSherlock
  6. android读写sd卡文件
  7. android 登录界面
  8. 疯狂android讲义---事件处理2
  9. 如何反编译android的apk文件得到资源文件
  10. Android上传文件到Django服务器