Java反编译工具JD-GUI以及Eclipse的反编译插件
什么是反编译
高级语言源程序经过编译变成可执行文件,反编译就是逆过程。但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序。
反编译是一个复杂的过程,所以越是高级语言,就越难于反编译,但目前还是有许许多多的反编译软件:通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,作为自己开发软件时的参考,或者直接用于自己的软件产品中。所以现在大家写的东西就想办法保护,不被侵权!
总之,有时候我们想要阅读代码,但是只有jar包却没有源码,就需要用到反编译工具了。
Java反编译工具JD-GUI
Github上的官方下载地址:https://github.com/java-decompiler/jd-gui/releases
有多种平台的安装版本,可以自己选择下载安装,也可以直接下载JAR包,然后用java -jar进行运行,如下:
java -jar jd-gui-1.4.0.jar
安装Eclipse的反编译插件
jd-eclipse
jd-gui在Eclipse上也有对应的反编译插件jd-eclipse,安装方式如下:
- 打开Eclipse -> Help -> Install New Software... -> Add...
- 在弹出的窗口中输入Name和Location,Name可以随意取,Location要填写反编译插件的下载地址:http://jd.benow.ca/jd-eclipse/update (该地址可能已经过期,需要去官网下载jd-eclipse,地址:http://java-decompiler.github.io/ )
- 填写完毕后会加载该插件的相关信息,勾选该插件,一路Next安装下去即可。
- 重启Eclipse该插件即可生效。
不过安装插件后Eclipse可能继续使用着默认的class查看器,我们可以把它改成我们新安装的jd查看器:
- Window -> Preference -> General -> Editors -> File Associations
- 选中*.class文件 -> 将Class File Editor设置为默认(Default)
- 最后确定修改,无需重启Eclipse即可生效。
新版本的jd-eclipse的类文件查看器名字可能叫做JD Class File Viewer(总之,Class File Viewer是Eclipse自带的类文件查看器,安装插件后会出现新的类文件查看器)
Enhanced Class Decompiler 3.0.0
上边的反编译插件jd-eclipse可能在安装并修改了class查看器后依然无效,可能是由于Eclipse版本不兼容或者其他的原因,这时候可以安装另一个反编译插件,安装步骤如下:
- 打开Eclipse -> Help -> Eclipse Marketplace...
- 在弹窗的搜索框中输入Decompiler,选择安装Enhanced Class Decompiler 3.0.0
- 安装工程中有Next选Next,中间需要选择接受安装协议,最后点击Finish
- 安装结束后重启Eclipse生效
参考链接
Java反编译工具JD-GUI以及Eclipse的反编译插件的更多相关文章
- Eclipse安装反编译工具JadClipse
记录一下安装Eclipse的反编译插件JadClipse的过程: 1.首先准备: 1)JadClipse插件,从网站http://sourceforge.net/projects/jadclipse/ ...
- Java反编译工具Luyten介绍
比较精准的一个java反编译工具,笔者有时候用jd-gui反编译不出来的class用luyten都可以反编译出来. 官方网站:https://github.com/deathmarine/Luyten ...
- Eclipse设置反编译插件
有些项目我们想看看引入的包的源码的时候,因为打包好的.class文件的内容我们是看不懂的,但是又懒得去找源码文件的时候,就会用到反编译工具. 步骤: 1.安装反编译插件. 2.设置使用的反编译工具. ...
- XJad反编译工具
XJad反编译工具 我们写的java文件,编译后就会生成相应的字节码文件,也就是.java文件经过编译以后生成.class文件 现在,假设我们现在存在这样一个问题:就是我们想自己动手验证注释会不会被编 ...
- Android反编译工具的使用-Android Killer
今天百度搜索“Android反编译”搜索出来的结果大多数都是比较传统的教程.刚接触反编译的时候,我也是从这些教程慢慢学起的.在后来的学习过程中,我接触到比较方便操作的Android反编译.在这,我将使 ...
- apk反编译工具-apktool
apk很easy被反编译,关于这篇文章apktool反编译工具. (一)优势反编译 1.能学习别人优秀代码 看看优秀apk他们的string.color命名规则,看看布局排版等都能学习到东西. 2.进 ...
- Android反编工具的使用-Android Killer
今天百度搜索"Android反编译"搜索出来的结果大多数都是比較传统的教程.刚接触反编译的时候,我也是从这些教程慢慢学起的.在后来的学习过程中,我接触到比較方便操作的Android ...
- 怎么使用Less/Sass编译工具koala
怎么使用Less/Sass编译工具koala 如何使用Less/Sass编译工具koala 一.SASS调试插件的方法 如需调试功能,请在编译输出的时候输出debug信息,那样解析的css文件中就会包 ...
- 转:介绍几个著名的实用的Java反编译工具,提供下载
from :http://www.glorze.com/219.html 反编译 众所周知,我们将源代码进行编译,生成可执行的程序或者容器发布包,这个将代码转换的过程就是编译的过程,而反编译就是将这些 ...
随机推荐
- ORACLE函数之单行转换函数
1 ASCIISTR 格式:ASCIISTR(C) 说明:将字符串C转换为ASCII字符串,即将C中的ASCII字符保留不变,但非ASCII字符则以ASCII表示返回 举例: ...
- 录音-树莓派USB摄像头话筒
实测可用: sudo arecord --duration=10 --device=plughw:1,0 --format=cd aaa.wav sudo arecord --duration=10 ...
- delphi2010\delphi XE7 开发及调试WebService 实例
使用delphi已经10多年了,一直搞桌面程序开发,对Webservice一直很陌生,近来因工作需要,学习delphi开发WebService,担心遗忘,作此笔记. 特别感谢 中塑在线技术总监 大犇 ...
- Codeforces696 Round #362 (Div. 1)(vp) A~D题解
很久没有打比赛了,内部模拟赛天天垫底,第一次vp之旅又是和**一样,这样下去GDOI之后直接退役算了 整场都在忘开LL A. Lorenzo Von Matterhorn 这个题一看我就想直接虚树+树 ...
- CSU - 1530 Gold Rush —— 二进制
题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1530 对于一块2^n质量的gold.需要把它分成a质量和b质量(a+b=2^n),且 ...
- WebDriver API——javascript的相关操作
有些时候webdriver是没法操作元素或浏览器的,这时候我们可以通过javascript来进行相关的操作,昨天在群里一个朋友定位一个显示框,总是无法定位点击,或者是点击无效,这个时候就可以用java ...
- 科目三靠边停车难度升级,超过50cm不合格怎么破?
驾考新规实施了几天,考过的学员普遍反映科目三难度升级,其中靠边停车项目的扣分点细化之后,一不小心就会不合格.新规以前靠边停车不压线就好了,新规之后,车辆距离马路右侧边缘线超过50cm就要扣100分,对 ...
- 分布式锁(Zookeeper实现)
分布式锁 分布式锁,这个主要得益于 ZooKeeper 为我们保证了数据的强一致性.锁服务可以分为两类,一个是 保持独占,另一个是 控制时序. 1. 所谓保持独占,就是所有试图来获取这个锁的客户端,最 ...
- zoj 2316 Matrix Multiplication 解题报告
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2316 题目意思:有 N 个 点,M 条 边.需要构造一个N * ...
- 端口扫描程序nmap使用手册
其实还是建议看英文的man,对以后学习其他东西很有帮助的:) 摘要 nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取那台主机正在运行以及提供什么服务等 ...