本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告

戒除浮躁,读好书,交益友


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:邢红瑞的blog
日志总数:523
评论数量:1142
留言数量:0
访问次数:9701236
建立时间:2004年12月20日




[jvm]JAD的使用 
原创空间,  软件技术,  电脑与网络

邢红瑞 发表于 2006/12/23 12:21:01

我以前用Decafe 但是由于JDK升为5.0后,Decafe反编译不了5.0的class,小颖JAVA源代码反编译专家V1.4终极版是个很好的工具,但是只能对JDK1.4.2和之前的版本编译的程序反编译,而JDK5.0后的就无能为力了,因为也是使用jad,因为jad从1.5.6版后,严禁用于商业版,也就是说你的产品中,没有Pavel Kouznetsov的同意,是不能使用jad的。不过新版的jad 不但速度快,而且可以反编译5.0 6.0的class文件。我说的反编译不用于破解商业版的软件,主要是找回自己丢失的代码,或者研究JDK编译器的优化,反编译的程序一般比我写的精练,因为一段可以工作的代码就是最好的参考文档。jad是一个基于命令行的程序,提供了大量的命令行选项。在命令行窗口环境中进入jad目录, 运行:jad -s java *.class (*.class指要反编译的文件名) 如果*.class文件和jad程序不在同一个目录,就要用到path环境变量, 将jad 所在目录加到path路径中即可:set path=%path%;d:\java\jad 若要了解jad更为详细的使用帮助信息,直接运行jad.exe查看主要说几个重要的:-8:   把Unicode编码的字符转换成ASCII输出,这样程序中的中文就会原样输出,而不是令人费解的uxxxx这种形式-nl:   把字符串按照切分输出,这样很长的字符串也不至于都放在一行,增强了可读性。-ff:   把数据成员放在方法之前,这样就符合大家写程序的习惯了-space:   在if, while等关键字和表达式之间加入空格,这是java的良好编程风格-nonlb:   不在开大括号(也就是左大括号)前加回车,这是大部分java程序员的习惯风格,大家可以根据自己的习惯选用-sjava   反编译结果以.java为扩展名,不是默认的jad。一般用jad  -ff -nl  -space -8 -nonlb -s .java *.class基本用法 Option -o 不提示,覆盖源文件 Option -p 将反编译结果输出到屏幕 jad -p example1.class 将反编译结果重定向到文件 jad -p example1.class>example1.java Option -d 指定反编译的输出文件目录 jad -o -dtest -sjava *.classOption -r 按*.class的包结构输出文件目录 jad -o -r -dtest -sjava d:/crackomincore/**/*.class 将d:\crackomincore\文件夹下的.class文件按照原程序的包结构反编译到test目录下直接使用命令行反编译整个目录的方法:使用jad批量反编译jad -o -r -sjava -d src bin/**/*.classsrc: 是反编译后的文件bin:指 package的字节文件将bin里面所有的.class反编译到src下面 


阅读全文(3229) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.344 second(s), page refreshed 144778470 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号