网站大量收购独家精品文档,联系QQ:2885784924

《java相关class文件反编译程序》.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《java相关class文件反编译程序》.doc

java相关class文件反编译程序 武汉大学国际软件学院 李三乎 在学习java的时候,总会有很多程序怎么也想不出来,这时候可以通过反编译程序将carnegie上给的class文件反编译一下,这样可以更有效的去学习java我们编程有时候缺少的不是知识,而是经验和见识,这种方法可以有效的提高自己的水平。同时,由于java语言的特点,java程序比其它语言更容易被反编译,所以程序员要深入了解这些反编译手段,才能保护自己的产权。言归正传,下面总结一下常见常用的反编译程序,以及它们的使用。 反编译程序中做的比较好的也比较常见的有三种,呃这个是参考资料知道的,链接是/view/9a3e984bcf84b9d528ea7a23.html本文就是用一下这几个程序,再截几个图。第一种是jad,它是用C++写的,很快,不过是命令行程序。我用的是1.5.8g的版本,可以反编译1.6了。把要编译的程序放在与jad程序同目录,然后用cmd打开该目录,使用jad命令就可以了,具体操作见截图。 常用的jad命令从网上摘了点。参考了/tool/other/11519.html我的jad也是在那里下的。 java反编译工具jad 1.5.8g,可以反编译jdk 1.5,jdk 1.6 反编译工具jad简单用法? 以下假设jad.exe在c:\java目录下? 一、基本用法? Usage:????jad?[option(s)]?filename(s)? 直接输入类文件名,且支持通配符,如下所示。? c:\java\jad?example1.class? c:\java\jad?*.class? 结果是将example1.class反编译为example1.jad。将example1.jad改为example1.java即得源文件。? 二、Option?-o? 不提示,覆盖源文件? 三、Option?-s? c:\java\jad?-sjava?example1.class? 反编译结果以.java为扩展名。? 四、Option?-p? 将反编译结果输出到屏幕? c:\java\jad?-p?example1.class? 将反编译结果重定向到文件? c:\java\jad?-p?example1.classexample1.java? 五、Option?-d? 指定反编译的输出文件目录? c:\java\jad?-o?-dtest?-sjava?*.class 命令行选择的列表 ????? -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??????? - 输出所有的变量的缺省的最初值 ????? -lnum??? - 将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

文档评论(0)

wgvi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档