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 反编译 众所周知,我们将源代码进行编译,生成可执行的程序或者容器发布包,这个将代码转换的过程就是编译的过程,而反编译就是将这些 ...
随机推荐
- 怎样解决 no jzmq in java.library.path
1. 确保zmq的各种library有安装正确.检查方法:查看/usr/local/lib, 看里面有没有libjzmq.a, libjzmq.dylib, libzmq.a, libjzmq.dyl ...
- git (转载)
文章转载 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的 ...
- Proxy Pattern
1.Proxy Pattern最大的好处就是实现了逻辑和实现的彻底解耦. 2.Proxy Pattern结构图 3.实现 #ifndef _PROXY_H_ #define _PROXY_H_ cla ...
- (转)findViewById 返回为null (自定义控件)
一.自定义控件 findViewById返回为null 首先讲一个具体的问题,这几天在做demo时,写了一个自定义组合控件,最后在run的时候显示这两行报错.原先还以为是setOnClickListe ...
- MYSQL进阶学习笔记十四:MySQL 应用程序优化!(视频序号:进阶_32)
知识点十五:MySQL 的应用程序优化(32) 一.访问数据库采用连接池 把连接当做对象或设备,统一放在‘连接池’里.凡是需要访问数据库的地方都从连接池里取连接 二.采用缓存减少对于MySQL的访问: ...
- 通过dom4j写.xml文件
步骤: 1.左键选中src,点击红圈2: 2.新建类: 3.开始写代码: package com.bjsxt.xml; import java.io.File; import java.io.File ...
- BLOB二进制大数据
What is a Blob? A blob object represents a chuck of bytes that holds data of a file. But a blob is n ...
- DDD领域驱动之干货(二)
基于仓储的实现 1.前言:本着第一节写的有些糊涂,主要是自己喜欢实干,不太喜欢用文字表述,就这样吧.下面切入正题. 博客园里面有很多的大佬,我这里就不一一解释概览,有兴趣的朋友可以去看大佬们写的 ...
- Oracle数据常用操作
将用逗号隔开字段拆分成两行: select * from mp_fs_file_info a,dm_process_upload b where instr(b.attachment,a.file_i ...
- POJ2406(next原理理解)
Power Strings Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 40448 Accepted: 16828 D ...