jar 反编译--Jadclipse

转自:
http://biaobiaoqi.github.io/blog/2013/10/21/decompiliation-jar/

Jar 包(Java Archive)是对 Java 程序的打包,它可能包含源码,也可能没有。

对于有包含源码的 Jar 包,在 Eclipse 工程里设定好 source code 路径后能直接查看到远吗,对于理解代码、调试的帮助很大。而如果 Jar 包没有打包源码,实际上也可以通过反编译的方法得到源码。道理很简单,Java 规范中,生成的.class 文件所包含的信息完全能逆向的重构出源码。

当然,一些代码为了防止自身 Jar 包被人反编译,会做代码混淆掩人耳目。其中最简单的一种方法就是是通过修改类名、变量名、方法名等方法让反编译的源码难于阅读理解。不过这个方法在混淆的时候需要特别注意:不能混淆对外提供接口的类。如果混淆了提供给外部的 API 接口的名字,整个工程就无法被正常使用了。

Jadclipse 的安装使用

Jadclipse 插件的反编译功能源于 Java 反编译工具 Jad。但用裸的 Jad 来命令行执行不太友好,于是就有了 Jadclipse。

1.下载 Jad 反编译工具

下载好 Jad 工具,解压后放在合适的路径下。 Jad 下载链接

2.安装插件

按照 Eclipse 版本下载匹配的 Jadclipse 插件:下载链接。(这个插件的最近修改是 2007 年,只要不是使用的老掉牙的 Eclipse,都可以下载最新的插件版本 jadclipse3.3)。

解压后,将对应版本的.jar 包放入 Eclipse 的插件目录(eclipse/plugins)下。

3.配置 Jadclipse

插件中有两个一定要配置好的选项:

Jad 执行文件的路径
.class 文件打开时的关联工具
以下配置路径的方式可能 Windows 跟 Mac 版本的 Eclipse 各不相同,不过都比较简单,可以自行 Google。

3.1 Jad 执行文件路径

在 Eclipse 中,依次打开 Preference -> Java -> JadClipse,修改Path to decompiler的值,定位到 Jad 的执行文件路径。

3.2 .class 关联工具

由于 Eclipse 默认.class 文件打开使用的是 Class File Viewer,如果.class 没有关联的源文件,则无法查看源代码。需要将.class without source类型的文件的关联编辑器首选设置为 JadClipse Class File Viewer。

打开方式如下: Windows—> Perference—>General->Editors->File Associations

4.测试

配置好后,可能需要重启 Eclipse(或许是插件本身不够 Robust,博主在没有重启的情况下尝试打开没有附带源代码的.class 文件时失败了,重启后一切 ok)。
将相应的 Jar 包加入到工程中。

点击其中的某个.class 文件,即可显示出它的源代码。文件的头部会有 Jad 的相关信息:

/*jadclipse*/// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) radix(10) lradix(10) 

你可能感兴趣的:(java,反编译,jar,源码,java,eclipse)