android classes.dex 反编译

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时候会出现逻辑错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值