java反编译工具
大多商业软件,会对程序进行加密、加壳等安全措施以防范软件被破解,从而使得反编译越来越难。反编译是一个对目标可执行程序进行逆向分析,从而得到源代码的过程。尤其是像java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码。
我们知道,在代码支撑方面,JDK 1.7引入了字符串Switch、泛型接口改进等新功能,1.8增加了lambda表达式、方法传递、多重注解等新特性,这使得反编译工具的编写难度加大。今天我们盘点一下目前仍然可用的、相对功能很强大的java反编译工具(Eclipse插件不做评价),比较老的反编译工具很难支持Java8及其以上版本。
1、Java 反编译器 JD-GUI
JD-GUI 是一个用 C++ 开发的 Java 反编译工具,由 Pavel Kouznetsov开发,支持windows、linux和苹果Mac Os三个平台。而且提供了Eclipse平台下的插件JD-Eclipse、intelliJ的插件JD-IntelliJ。JD-GUI不需要安装,直接点击运行,可以反编译jar,class文件。
最新版本1.4.0,官方网站:http://jd.benow.ca/。
2、Java 反编译器 procyon-decompiler及其window下独立UI工具luyten
Procyon-Decompiler支持jdk1.8类的反编译,在很多方面做得非常不错,如反编译匿名类、内部类、Java8 Lambda等等。Procyon-Decompiler支持JDK1.8类的反编译,在很多方面做得非常不错:字符串的Switch、枚举声明方面、注解方面、匿名类、内部类、Java8新接口规范、Java8 Lambda表达式、Java8 方法传递等。
luyten是Procyon的GUI,是一款操作简单、功能实用的java反编译工具,软件支持*.JAR、*.zip、*.class等类型文件的反编译操作,还原度非常高,支持更多功能设置,如显式导入、类型、合成组件等等,用户可根据不同的需求选择合适的显示项目,结果更明了。
luyten的最新版本0.53,官方网址:https://github.com/deathmarine/Luyten,只需要下载luyten即可,不用下载Procyon。Procyon最新版本0.5.30。
3、Android反编译gui工具Jadx
jadx是一款Android反编译gui工具,它支持apk、dex、jar、class、zip、aar等文件。jadx操作方便,反编译后的代码可读性高,同时还拥有较完善的gui界面,除去混淆部分的代码,jadx已经非常接近源代码了。
Jadx最高版本v0.7.1,官方地址https://github.com/skylot/jadx/。
三个工具中JD-GUI打开jar文件反编译速度飞快、luyten次之、Jadx最慢(有时候需要等好一会,喝杯咖啡先)。三者都会遇到反编译不出来的情况,建议配合使用。
相关阅读
转载这篇文章 使用过ajax的朋友经常会见到这样的代码:here,这里面的void是一个操作符,该操作符指定要计算一个表达式但是不返回值。j
很多朋友估计没有做过这一块,争取最简洁的语言描述清楚。一、业务简述从业务上看 整个智能广告系统,主要分为:1)业务端:广告主
在使用电脑的过程中,我们经常需要检测电脑的网络状态,这时通过使用一些网络的基本命令来检测电脑的网络状态,以下,介绍几种常用的
最近也是面试的时候问道一个问题,如何将一个java对象转换为json字符串,一听到的时候没有任何思路,之前也有接触过fastjson,知道就是用
我现在只是一个快2年经验的平凡的菜鸡boy 第一面架构师面试 1、简单介绍一下你经常使用的集合 2、什么是线程安全 3、arraylist和