反编译

先说一下,反编译并非完全编译,越复杂的越难反编译,只能保证将其反编译为机器语言(汇编语言)。但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序。像*.exe之类的很难反编译,比如使用eXeScope,就算是最简单程序也只能反编译成机器码,一般人是看不懂的,也很难看懂的。而java则是使用的JVM,所以教容易反编译,能大概反编译成源代码。这里我说的是大概,差不多的意思。下面简单介绍一下反编译。

   高级语言源程序经过 编译 变成可执行文件,反编译就是逆过程。
  反编译: 机器码(汇编语言) → 高级编程语言
  
  计算机软件反向工程(Reversepengineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,作为自己开发软件时的参考,或者直接用于自己的软件产品中。
  反编译是一个复杂的过程,所以越是高级语言,就越难于反编译,但目前还是有许许多多的反编译软件:
  VB: VBExplorer 、VB反编译精灵和VBRezQ;只能反编译界面图像,好像代码不能完全反编译
  JAVA: JAD(Joint Application Development) ;java的反编译比较常见,所以反编译比较完全, 将class文件反编译成java文件也是有可能的
  C++: eXeScope
  Dephi: DEDE
  c#:Reflector
  易语言:E-Code Explorer.exe(易格式可执行文件分析器)


工具下载地址:
    1.dex2jar 
下载地址: http://code.google.com/p/dex2jar/ 
    2.jd-gui   下载地址: http://java.decompiler.free.fr/jd-gui/downloads/jd-gui-0.3.3.windows.zip 
    3.apktool  下载 地址: https://code.google.com/p/android-apktool/ (注:将apktool-1.3.1.tar.bz2和apktool-install-windows-2.2_r01-2.tar.bz2解压到同一个目录,即包含三个文件分别为:aape.exe,apktool.bat,apktool.jar


Android apk反编译(参考文献:Android_反编译apk_到java源码的方法)
一.获取apk的资源图片 直接用 WinRAR打开,res/drawable直接拖拽出来即可。
二.获取xml文件信息  
    DOS在cmd下进入apktool所在路径,然后输入apktool d "XXX1" "XXX2",XXX1指的是你要反编译的apk文件,XXX2指的是反编译后文件存放的路径 
例如:D:\apktool>apktool d "D:/lbs.apk" "D:/name"


三.反编译 *.dex获取 Java 源代码 
1.解压lbs.apk文件,找到lbs.dex文件 
2.在cmd下进入dex2jar.bat所在路径 
     C:\Users\HP>D:
     D:\>cd dex2jar
     D:\dex2jar>dex2jar.bat classes.dex
这样会生成一个 lbs_dex2jar.jar文件
3.用jd-gui工具将jar文件反编译成java文件,选择保存所有,它会生成一个压缩文件,所有的源码都在这个压缩文件中,解压了就可以看到详细的代码了



 反编译的步骤:
1 apktool1.4.1.tar.bz2   apktool-install-windows-r04-brut1.tar.bz2  dex2jar-0.0.7.11-SNAPSHOT.zip  jd-gui.cfg 工具

2 解压上面的工具

3 把apktool1.4.1.tar.bz2解压出来的apktool.jar复制到apktool-install-windows-r04-brut1.tar.bz2目录
4 放置一个xxx.apk到apktool-install-windows-r04-brut1目录
  cd /d C:\tools\apktool-install-windows-r04-brut1
 
apktool.bat  d -s taskman_2.apk   生成一个taskman_2的文件夹
5 把classes.dex复制到C:\tools\dex2jar-0.0.7.11-SNAPSHOT\dex2jar-0.0.7.11-SNAPSHOT
  cd /d C:\tools\dex2jar-0.0.7.11-SNAPSHOT\dex2jar-0.0.7.11-SNAPSHOT
  dex2jar.bat classes.dex  生成  classes_dex2jar.jar

6 通过jd-gui.cfg工具查看classes_dex2jar.jar


上面用到的android反编译工具可以在


*.class反编译到*.java

  直接运行jd-gui工具即可,当然也可以使用java自带的反编译工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值