文档章节

Eclipse 反编译插件 jadClipse

saulc
 saulc
发布于 2015/12/25 17:07
字数 1196
阅读 667
收藏 12

反编译插件有 jdeclipse 和 jadeclipse。

(1) jdeclipse

http://www.djjavadecompiler.com/

(2) jad + jadeclipse

下载 jadeclipse:http://sourceforge.net/projects/jadclipse/files/

下载 net.sf.jadclipse_3.3.0.jar 后,复制到 eclipse主目录下的 plugin文件夹下,然后重启 eclipse。

下载 jad.exe:http://www.varaneckas.com/jad/ (从维基中找到的地址)

下载完成后,复制到任意路径

Window->Preferences->Java->JadClipse.

1、Path to decompiler,这里设置反编译工具jad的全路径名,下载jad.exe的全路径.

2、Directory for temporary files,这里设置临时文件路径。
至于Window->Preferences->Java->JadClipse目录下的Debug,Directives,Formatting,Misc目录中的参数设置,就不罗嗦。

安装完成后:

在Eclipse的视窗系统――> Perference――>General->Editors->File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer”。“*.class without source”默认关联的编辑器为“JadClipse Class File Viewer”设置完成后,双击*.class文件,eclipse将自动反编译。


像这样就安装成功了


常见的安装失败:

1,路径不对

/*jadclipse*/

/*
DECOMPILATION REPORT

Decompiled from: E:WKSPBOS60EAS60SPlibcommonbosmetadata.jar
Total time: 0 ms
Jad reported messages/errors:
Exit status: 0
Caught exceptions:
java.io.IOException: CreateProcess: D:kingdeeeasbosjad -p -t4 -dead -noconv -lradix10 -radix10 Context.class error=3


2,安装的jad版本不对

/*jadclipse*/

/*
DECOMPILATION REPORT

Decompiled from: E:WKSPBOS60EAS60SPlibservereasfi_arap-server.jar
Total time: 250 ms
Jad reported messages/errors:
Exit status: 1
Caught exceptions:
*/


3,目前尚无解决

java.lang.InterruptedException 

at java.lang.ProcessImpl.waitFor(Native Method) 

at net.sf.jadclipse.JadDecompiler.decompile(JadDecompiler.java:167)



使用方法:


[1] 反编译一个class文件:jad example.class,会生成example.jad,用文本编辑器打开就是java源代码


[2] 指定生成源代码的后缀名:jad -sjava example.class,生成example.java


[3] 改变生成的源代码的名称,可以先使用-p将反编译后的源代码输出到控制台窗口,然后使用重定向,输出到文件:jad -p example.class > myexample.java


[4] 把源代码文件输出到指定的目录:jad -dnewdir -sjava example.class,在newdir目录下生成example.java


[5] 把packages目录下的class文件全部反编译:jad -sjava packages/*.class


[6] 把packages目录以及子目录下的文件全部反编译:jad -sjava packages/**/*.class,不过你仍然会发现所有的源代码文件被放到了同一个文件中,没有按照class文件的包路径建立起路径


[7] 把packages目录以及子目录下的文件全部反编译并建立和java包一致的文件夹路径,可以使用-r命令:jad -r -sjava packages/**/*.class


[8] 当重复使用命令反编译时,Jad会提示“whether you want to overwrite it or not”,使用-o可以强制覆盖旧文件


[9] 还有其他的参数可以设置生成的源代码的格式,可以输入jad命令查看帮助,这里有个人做了简单的翻译:jad命令总结


[10] 当然,你会发现有些源文件头部有些注释信息,不用找了,jad没有参数可以去掉它,用别的办法吧。


最后,jad不能直接反编译jar包,直接解压了再反编译吧(这个方法很显然,我实在不好意思写出来)。


现在就总结一下jad 命令


首先,看一下jad的帮助提示


 -a - 用JVM字节格式来注解输出 

-af - 同 -a,但是注解的时候用全名称 

-clear - 清除所有的前缀 

-b - 输出多于的括号 (e.g., if(a) { b(); }, default: no) 

-d <dir> - 指定输出文件的文件目录 

-dead -试图反编译代码的dead 部分(default: no) 

-disass - 不用用字节码的方式反编译 (no JAVA source generated) 

-f - 输出整个的名字,无论是类还是方法 

-ff -输出类的成员在方法之前 (default: after methods) 

-i - 输出所有的变量的缺省的最初值 

-l<num> - 将strings分割成指定数目的块的字符 (default: no) 

-lnc - 将输出文件用行号来注解 (default: no) 

-nl - 分割strings用新行字符 newline character (default: no) 

-nodos -不要去检查class文件是否以dos方式写 (CR before NL, default: check) 

-nocast - 不要生成辅助文件 

-nocode -不要生成方法的源代码 

-noconv - 不要转换java的定义符 (default: do) 

-noctor - 不允许空的构造器存在 

-noinner -关掉对内部类的支持 (default: turn on) 

-nolvt - 忽略局部变量的表信息 

-nonlb - 不要输出一个新行在打开一个括号之前 (default: do) 

-o - 无需确认直接覆盖输出 (default: no) 

-p - 发送反编译代码到标准输出 STDOUT (e.g., for piping) 


其次.常用命令


jad -o -r -sjava -dsrc test.class


tree目录下的所有*.class文件

    jad -o -r -sjava -dsrc tree/**/*.class


    unix可以表示为:jad -o -r -sjava -dsrc 'tree/**/*.class'


指定输出文件的名字的话,用以下的转移命令


jad -p example1.class > myexm1.java


输出带字节码注释和源码的(最常用)


jad -o -a Test.class > ss.java


© 著作权归作者所有

共有 人打赏支持
saulc
粉丝 2
博文 39
码字总数 28598
作品 0
浦东
程序员
eclipse反编译插件Jadclipse介绍

jadclips插件网站: http://jadclipse.sourceforge.net/ 一、下载: 下载插件: 下载jadclipse3.1.0.jar版本,该版本支持eclipse3.1M6以上 下载jadclipse3.2.0.jar版本,该版本支持eclipse3....

红薯
2009/01/10
11.4K
4
7 款开源 Java 反编译工具

今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程。尤其是像.NET、Java这...

wwwmmm
2014/09/24
7.8K
0
Myeclipse8.5 反编译插件 jad 安装

青春乐园 Myeclipse8.5 反编译插件 jad 安装 准备工作 安装

村长大神
2014/04/25
194
0
MyElipes遇到 source not found解决方案

在用Myeclipse 或者是eclipse进行开发时候经常遇到这个问题。 File class editor source not found问题。原因很简单,就是因为这是一个源码包,相应的没有编辑器能够打开它。 工具/原料 myec...

Airship
2015/08/10
0
0
MyEclipse下Jad插件安装方法

【安装jad程序】 (拷贝即可,为最新版本Jad 1.5.8g for Windows 9x/NT/2000 on Intel platform) 1、将jad.exe拷贝到%JAVAHOME%Bin程序目录。(也可以放置任意目录,例如:C:Program Files...

Sheamus
2016/01/07
91
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

移除或自定义 WordPress 仪表盘欢迎面板

第一次登录 WordPress 后台仪表盘页面,默认都会显示 WordPress 的欢迎面板: 如果我们要移除这个面板,在主题的 functions.php 中添加下面的代码即可: 12 //移除 WordPress 仪表盘欢迎面...

james_laughing
16分钟前
0
0
HashMap实现原理及源码分析

HashMap实现原理及源码分析   哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,...

DemonsI
19分钟前
0
0
eggjs学习笔记

快速初始化 生成项目(要求最低的node版本8.x) npm i egg-init -gegg-init egg-example --type=simplecd egg-examplenpm i 启动项目 npm run dev 配置 环境配置会覆盖默认配置 config...

别人说我名字很长
22分钟前
1
0
Winform Timer控件时间间隔

sender as System.Timers.Timer).Interval = 23 * 60 * 60 * 1000.0;//将时间间隔改为23小时,23小时后重新发生timer_Elapsed事件。 //60000:时间间隔1分钟,300000:时间间隔5分钟,600000:...

笑丶笑
23分钟前
0
0
在win10系统下怎样快速切换任务视图

切换窗口:Alt + Tab 任务视图:Win + Tab (松开键盘界面不会消失) 切换任务视图:Win + Ctrl +左/右 创建新的虚拟桌面:Win + Ctrl + D 关闭当前虚拟桌面:Win + Ctrl + F4...

SummerGao
27分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部