什么是反编译

高级语言源程序经过编译变成可执行文件,反编译就是逆过程。但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序。

反编译是一个复杂的过程,所以越是高级语言,就越难于反编译,但目前还是有许许多多的反编译软件:通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,作为自己开发软件时的参考,或者直接用于自己的软件产品中。所以现在大家写的东西就想办法保护,不被侵权!

总之,有时候我们想要阅读代码,但是只有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生效

参考链接

  1. 反编译是什么意思
  2. Java反编译工具-JD-GUI
  3. jd-eclipse反编译插件的在线安装和使用
  4. 关于Eclipse安装了反编译插件,无法查看源码问题

Java反编译工具JD-GUI以及Eclipse的反编译插件的更多相关文章

  1. Eclipse安装反编译工具JadClipse

    记录一下安装Eclipse的反编译插件JadClipse的过程: 1.首先准备: 1)JadClipse插件,从网站http://sourceforge.net/projects/jadclipse/ ...

  2. Java反编译工具Luyten介绍

    比较精准的一个java反编译工具,笔者有时候用jd-gui反编译不出来的class用luyten都可以反编译出来. 官方网站:https://github.com/deathmarine/Luyten ...

  3. Eclipse设置反编译插件

    有些项目我们想看看引入的包的源码的时候,因为打包好的.class文件的内容我们是看不懂的,但是又懒得去找源码文件的时候,就会用到反编译工具. 步骤: 1.安装反编译插件. 2.设置使用的反编译工具. ...

  4. XJad反编译工具

    XJad反编译工具 我们写的java文件,编译后就会生成相应的字节码文件,也就是.java文件经过编译以后生成.class文件 现在,假设我们现在存在这样一个问题:就是我们想自己动手验证注释会不会被编 ...

  5. Android反编译工具的使用-Android Killer

    今天百度搜索“Android反编译”搜索出来的结果大多数都是比较传统的教程.刚接触反编译的时候,我也是从这些教程慢慢学起的.在后来的学习过程中,我接触到比较方便操作的Android反编译.在这,我将使 ...

  6. apk反编译工具-apktool

    apk很easy被反编译,关于这篇文章apktool反编译工具. (一)优势反编译 1.能学习别人优秀代码 看看优秀apk他们的string.color命名规则,看看布局排版等都能学习到东西. 2.进 ...

  7. Android反编工具的使用-Android Killer

    今天百度搜索"Android反编译"搜索出来的结果大多数都是比較传统的教程.刚接触反编译的时候,我也是从这些教程慢慢学起的.在后来的学习过程中,我接触到比較方便操作的Android ...

  8. 怎么使用Less/Sass编译工具koala

    怎么使用Less/Sass编译工具koala 如何使用Less/Sass编译工具koala 一.SASS调试插件的方法 如需调试功能,请在编译输出的时候输出debug信息,那样解析的css文件中就会包 ...

  9. 转:介绍几个著名的实用的Java反编译工具,提供下载

    from :http://www.glorze.com/219.html 反编译 众所周知,我们将源代码进行编译,生成可执行的程序或者容器发布包,这个将代码转换的过程就是编译的过程,而反编译就是将这些 ...

随机推荐

  1. mongodb学习之:安全和认证

    mongodb默认是不认证的,默认没有账号,只要能连接上服务就可以对数据库进行各种操作,mongodb认为安全最好的方法就是在一个可信的环境中运行它,保证之后可信的机器才能访问它.因此需要在登录的时候 ...

  2. 对私有API提交的注意事项

    1.这个等于堵死了调试断点.关闭就不能断点调试了. 2.对于敏感的函数名要做一个对称加密处理. 防止二进制文件的静态扫描. 3.对于调用私有函数的方法,可以做一个宏定义包装. #define 你的正常 ...

  3. /dev/sda2 is mounted; will not make a filesystem here!

    一定要记住,不可以在分区挂载之后再进行格式化!!在错误提示当中可以看出你的分区已经挂载了.先将这个分区卸载了再重新格式化:umount /dev/sda2mkfs.ext2 /dev/sda2这样就没 ...

  4. APP测试走过的那些坑

    我现在的工作有一大部分也是app测试,虽然自己是app开发出身,但是在测试上还是跌入了很多大坑,毕竟二者还是有很大不同,所处的角度也是不一样的.而开发转测试中,我认为较难的也是一个角度的转换,以一个开 ...

  5. 理解HTML解析过程

    浏览器解析html的过程是:接受网络数据->将二进制码变成字符->将字符变为unicode code points.->tokenizer ->tree constructor ...

  6. IOS下WEBVIEW 的javascript数组与json定义 及交互

    最近在折腾IOS新闻浏览客户端,当中需要用到webview传递JSON数据到IOS上,然后在IOS上解析.刚入门IOS不久,看了不少的书,但都是囫囵吞枣.在开发过程中,遇到不少问题.开发环境mac m ...

  7. codeforces B. Coach 解题报告

    题目链接:http://codeforces.com/problemset/problem/300/B 题目意思:给出n个students(n%3 = 0),编号依次为1-n,接下来有m行,每行有两个 ...

  8. (QA-LSTM)自然语言处理:智能问答 IBM 保险QA QA-LSTM 实现笔记.md

    train集: 包含若干条与保险相关的问题,每一组问题对为一行,示意如下: 可分为四项,第三项为问题,第四项为答案: 1.build_vocab 统计训练集中出现的词,返回结果如下(一个包含3085个 ...

  9. [转载]支付宝钱包手势密码破解实战(root过的手机可直接绕过手势密码)

    /* *转自http://blog.csdn.net/hu3167343/article/details/36418063 *本文章由 莫灰灰 编写,转载请注明出处. *作者:莫灰灰    邮箱: m ...

  10. [SHOI 2017] 寿司餐厅

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4873 [算法] 注意到题目中的限制条件可表述为 : 若选择区间[L , R] , 则 ...