前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

谈谈JAVA程序的反编译_科技报道_网易科技|科技生活 精彩每一天 通行证:用户名 密码 首页 - 新闻 - 免费邮箱 - 短信 - POPO - 相册 - 搜索 - 交友 - 拍卖 新闻 | 体育 | 财经 | 娱乐 | 商业 | 科技 | 汽车 | 数码 | 女人 | 旅游 | 教育 | 文化 | 广州 | 军事 | 部落 评论 | NBA | 明星 | 证券 | 基金 | 探索 | 房产 | 手机 | 两性 | 健康 | 培训 | 电影 | 游戏 | 拍卖 | 论坛 无标题文档 技术趋势探索学院IT茶馆专题游戏病毒重磅报道下载论坛设为首页 滚动|要闻|头图|IT业界|通信|互联网|家电|名人访|数码|产品|科学读图|科学专题|视频教程|艺术设计|导航 我现在的位置: 网易首页--> $one.get("topicname")--> $one.get("topicname")--> JAVA 谈谈JAVA程序的反编译 网易科技报道 http://tech.163.com 2005-01-11 14:30:43 来源: 网易学院 不良信息举报 发表评论 查看评论   如今JAVA语言在全世界范围正如火如荼般的流行,它广范地应用在INTERNET的数据库、多媒体、CGI、及动态网页的制作方面。1999年在美国对JAVA程序员的需求量首次超过C++!  作者因最近分析一些JAVA程序,对JAVA的反编译进行了一番了解,下面将我所了解的情况作以下介绍,希望对JAVA爱好者有所帮助。  JAVA是采用一种称做“字节编码”的程序结构,分为小程序(嵌入到HTML文件中)和应用程序(直接在命令状态下执行)两种类型。无论哪种结构,一旦用JAVAC命令编译后,均变成后缀为CLASS的同名可执行文件。这种文件是不可阅读的代码。  经查阅了SUN公司的JDK(JDK1.1.3)文档资料后,我找到了一个据称是可反编译JAVA的JAVAP文件(EXE),这个文件位于\\JDK\\BIN\\下面,经按说明使用后,感到失望,原来这个“反编译”仅可反编译出JAVA程序的数据区(定义)、若干方法和类的引用等。  这里我用了一个简单例子来说明问题。  JAVA的源程序hello_java.java如下:  import java.applet.*;  import java.awt.*;  public class hello_java extends Applet  public void paint(Graphics g)  g.drawString(Hello Java!\\n,20,20);  经用反编译命令:javap -c -package -public -privatehello_javahello.java  得到的反编译结果(hello.java)如下:(有关javap命令的选择参数请见其使用说明,这里-c表示选择了反编译)  Compiled from hello_java.java  public synchronized class hello_javaextendsjava.applet.Applet  /* ACC_SUPER bit set */  public void paint(java.awt.Graphics);  public hello_java();  Method void paint(java.awt.Graphics)  0 aload_1  1 ldc #1  3 bipush 20  5 bipush 20  7 invokevirtual #6  10 return  Method hello_java()  0 aload_0  1 invokespecial #5 ()V>  4 return  从上述结果不难看出该反编译未能将源程序全译出来,像语句g.drawString(HelloJava!\\n,20,20);就没有。随着程序量增加,未能编译的JAVA语句还会更多。所以这个反编译程序仅能起个参考作用。   幸亏有了INTERNET,笔者通过YAHOO很快找到了一个JAVA反编译“自由软件”(SHAREWARE),http://www.inter.nl.net/users/H.P.van.Vliet/mocha.htm。这个软件叫MOCHA,据说是一位30来岁的加拿大的研究生所完成,仅是个“?”版,原因是这位叫做H.P.VAN.VLIET的小伙子患癌逝世了,十分可惜呀!  经使用MOCHA反编译软件,感到这个软件十分好用,笔者试反编译多个JAVA程序,均得到很好的结果。  这里给出如何使用这个软件,首先,用WINZIP等将mocha-b1.zip解开得到mocha.zip文件,mocha.zip不须再解开,这个包内包括了反编译的类文件,只需将其拷贝到JDK所在的目录下,如:c:\\jdk\\bin\\此外,须设置路径:SETCLASSPATH=c:\\myclasses;c:\\jdk\\bin\\mocha.zip  MOCHA用法:  java mocha.Decompiler -v -o Class1.class Class2.class ...  java 调用Java虚拟机  mocha.Decompiler 指示要进行JAVA反编译  -v 选择详细输出  -o 选写入已有的.mocha 文件  ClassX.class 指出要反编译类名  注意,不需给出输出的JAVA文件名,因为MOCHA自动产生一个与CLASS同名但扩展名为MOCHA的JAVA源文件。  对于上例,可用命令:  java mocha.Decompiler -v -o hello_java.class  得到的源文件:  /* Decompiled by Mocha from hello_java.class */  /* Originally compiled from hello_java.java */  import java.applet.Applet;  import java.awt.Graphics;  public synchronized class hello_java extends Applet  public void paint(Graphics g)  g.drawString(Hello Java!\\n, 20, 20);  public hello_java()  我们不难发现,此文件与编译前的JAVA源文件完全一样!笔者曾经用MOCHA反编译出最大为80K的源文件,均取得成功。  在此,笔者向英年早逝的VLIET表示敬意,感谢他给我们留下这个工具软件。   作者:中国电脑技术网 [返回首页]   相关文章 全站 站内 英特尔 移动 电信 戴尔 华为 收购 科技聚焦 RSS:古老而又新颖的技术WINDOWS 系统操作视频教程独家:Flash ActionScript视频教程金鹰Fireworks视频教程第三届中国国际网络文化博览会国庆巨献 科技狂想黄金周探索激辩:究竟什么是伪科学?人类诞生后的十大理论狮子VS老虎 谁更凶猛?机器人时代,谁是主人? 疤痕疙瘩、痤疮一扫光! 子宫卵巢健康女人更美丽 高血压人要“解放”! 高血压--全新突破! 基因透析法治疗肝病! 这个如此奇怪的生物究竟是什么呢? 外星人 星鼻鼹 远古怪兽 变异鼹鼠 网易病毒每日预警 6月27日金山病毒预警 6月27日江民病毒预警 6月27日瑞星病毒预警 其他重要病毒的发作日期 免费检测您电脑中的木马 免费检测您电脑中的病毒 频道精选 卡西尼发现土卫六"海岸线" 蜿蜒数千里(图)蜻蜓翼展近1米 什么造就远古巨型昆虫?(图)频道精选调用破解杨贵妃生死之谜 盛传美人逃到日本(图)UFO迷梦在尴尬中冷却 如何拯救人们的热情?动物趣生活 关爱我们身边的动物朋友(组图)翼龙大小为原先设想的两倍 仿佛战斗机(图)超出虚拟的界限 玩游戏还是被游戏玩?(图)火星快车获火星有水新证据 有火山活动?(图)未来的新人种 漫游浩瀚星际的"宇宙人"(图) 易趣竟拍 ·珠宝首饰/手表/眼镜 ·礼品/烟具/优惠券 ·运动/户外/球星纪念品 ·玩具/卡通产品/游戏机 春节期一天赚2万!!! 她靠什么赚28万(组图) 用韩国技术打中国市场 穷人请勿点:连锁加盟 无人存款机—疯狂敛财 她让我一个月会说英语 未来十年稳赚有车人钱 女人一夜暴富的秘密 男人赚钱项目推荐 与首钢联手赚大钱!! 06年赚钱项目抢先预测 1.28万办厂年利100万! 吃着碗里的想着锅里的 亲子装,让女人暴富! 女人干什么事业最赚钱 主编信箱 热线:020- 给网易提意见  About NetEase - 公司简介 - 联系方法 - 招聘信息 - 客户服务 - 相关法律 - 网络营销 - 帮助中心 网易公司版权所有 ©1997-2009