文档章节

Eclipse 反编译插件 jadClipse

saulc
 saulc
发布于 2015/12/25 17:07
字数 1196
阅读 661
收藏 12
点赞 0
评论 0

反编译插件有 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
博文 27
码字总数 15783
作品 0
浦东
程序员
eclipse反编译插件Jadclipse介绍

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

红薯 ⋅ 2009/01/10 ⋅ 4

7 款开源 Java 反编译工具

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

wwwmmm ⋅ 2014/09/24 ⋅ 0

Eclipse安装编译插件

Eclipse反编译工具Jad及插件JadClipse配置 Jad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的java,javac命令是一样的。不过因为是控制台运行,所以用起来不太方便。不过幸好...

蓝狐乐队 ⋅ 2014/04/02 ⋅ 0

Myeclipse8.5 反编译插件 jad 安装

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

村长大神 ⋅ 2014/04/25 ⋅ 0

MyElipes遇到 source not found解决方案

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

Airship ⋅ 2015/08/10 ⋅ 0

在Eclipse中反编译Class文件完全详解

Java是开源的,是免费的,我们强烈鄙视所有不公开源代码的东东。比如,对class文件进行加密混淆的类文件,一般情况下,我们是看不到其源代码的。本文将对此进行详细阐述,说明如何随心所欲的...

taote ⋅ 2011/12/02 ⋅ 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 ⋅ 0

JadClipse for Eclipse 4.x 发布,Java反编译插件

JadClipse for Eclipse 4.x 发布,支持 Eclipse 3.x。 JadClipse for Eclipse 4.x 新增功能: 1. Integrate jad.exe into the plugin, don't need to set jad path in the preference page ......

oschina ⋅ 2015/04/22 ⋅ 10

如何查看 JAR 包的源代码

原文同步至 Java 项目的编译文件经常被打包成 JAR(Java Archive,Java 归档文件)文件,当然,作为学习,有时候也非常想看到这个 JAR 被打包前的源代码是怎么样的。下面提供几种查看 JAR 包...

waylau ⋅ 2015/04/02 ⋅ 0

Myeclipse8.5 反编译插件 jad 安装

准备工作 下载jad.exe文件:http://www.varaneckas.com/sites/default/files/jad/jad158g.win.zip 下载jadeclipse插件:http://prdownloads.sourceforge.net/jadclipse/net.sf.jadclipse3.3.......

一枚Sir ⋅ 2014/05/15 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

BS与CS的联系与区别【简】

C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、InFORMix或 SQL Server。客户端需要安装专用的客户端软件。 B/S是Brower/...

anlve ⋅ 40分钟前 ⋅ 0

发生了什么?Linus 又发怒了?

在一个 Linux 内核 4.18-rc1 的 Pull Request 中,开发者 Andy Shevchenko 表示其在对设备属性框架进行更新时,移除了 union 别名,这引发了 Linus 的暴怒。 这一次 Linus Torvalds 发怒的原...

问题终结者 ⋅ 59分钟前 ⋅ 0

在树莓派上搭建一个maven仓库

在树莓派上搭建一个maven仓库 20180618 lambo init 项目说明 家里有台树莓派性能太慢。想搭建一个maven私服, 使用nexus或者 jfrog-artifactory 运行的够呛。怎么办呢,手写一个吧.所在这个...

林小宝 ⋅ 今天 ⋅ 0

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 今天 ⋅ 0

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 今天 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 今天 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 今天 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部