易码技术论坛

 找回密码
 加入易码
搜索
查看: 158253|回复: 19

怎么看LAVA程序的源代码?

[复制链接]
发表于 2005-3-31 09:22:00 | 显示全部楼层
用眼睛看啊[em01]
发表于 2005-3-31 13:31:00 | 显示全部楼层
-_-|||||
lee说的话好像句句都这么经典..........
==========正确答案
无法看.lav文件的源代码  除非你有txt源代码
发表于 2005-3-31 13:35:00 | 显示全部楼层
呵呵。大实话!
没源代码当然看不了源代码。
有了源代码用眼睛看不就行了。
发表于 2005-3-31 18:34:00 | 显示全部楼层
以下是引用leesoft在2005-3-31 13:35:03的发言:

呵呵。大实话!

大实话好像我们物理老师经常说 -_-|||
发表于 2005-3-31 19:12:00 | 显示全部楼层
偶一般只会用PAC改LAVA游戏的存档................
发表于 2005-3-31 21:32:00 | 显示全部楼层
QIQI做个反编译器啊![em02]
发表于 2005-4-1 09:22:00 | 显示全部楼层
反编译也只能弄出类似汇编一类难懂的东西。
大程序从来不怕反汇编,因为反汇编的东西要看懂所需时间远远超过了写一个程序的时间!
发表于 2005-4-1 10:28:00 | 显示全部楼层
对了 有人反WINDOWS吗 一辈子也反不完!!
发表于 2005-4-1 15:03:00 | 显示全部楼层
不懂就不要装懂。
你把三国志反编译出可看得懂的Lava源程序试试?
不累死你才怪!
发表于 2005-4-1 15:10:00 | 显示全部楼层
果然说中了!
只会说不会做的家伙!
发表于 2005-4-9 01:52:00 | 显示全部楼层
大概反是反的完,不过还不如汇编好看而已……想看源代码就问作者要吧……
发表于 2005-4-9 01:57:00 | 显示全部楼层
这个太夸张了,没听说有人能反java的,这个可是巨大误倒哦。不过也许理解不同吧,那些靠虚拟机的东西反出来(其实不用反就能出来)的东西是给虚拟机看的汇编码,其实还是汇编码……成不了高级程序的。要是真能反出高级语言的代码来那微软就别混了。尤其是面向对象领域,人都写不出好代码,还指望机器能反出来嘛?天方夜谭哦[em07]
发表于 2005-4-9 16:53:00 | 显示全部楼层
以下是引用shooting在2005-4-9 1:57:05的发言:
这个太夸张了,没听说有人能反java的,这个可是巨大误倒哦。不过也许理解不同吧,那些靠虚拟机的东西反出来(其实不用反就能出来)的东西是给虚拟机看的汇编码,其实还是汇编码……成不了高级程序的。要是真能反出高级语言的代码来那微软就别混了。尤其是面向对象领域,人都写不出好代码,还指望机器能反出来嘛?天方夜谭哦[em07]


谈谈JAVA程序的反编译

http://tech.sina.com.cn 2000/09/26  软件世界 于瑶
  如今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 -private hello_java hello.java
  得到的反编译结果(hello.java)如下:(有关javap命令的选择参数请见其使用说明,这里-c表示选择了反编译)
  Compiled from hello_java.java
  public synchronized class hello_java extends java.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
  10 return
  Method hello_java()
  0 aload_0
  1 invokespecial #5 ()V>
  4 return
  }
  从上述结果不难看出该反编译未能将源程序全译出来,像语句g.drawString("Hello Java!\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\ 此外,须设置路径:SET CLASSPATH=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表示敬意,感谢他给我们留下这个工具软件。
发表于 2005-4-9 18:30:00 | 显示全部楼层
……我土了,道歉
发表于 2005-4-9 23:46:00 | 显示全部楼层
伪代码有它的"能看性",没有比Java反出来的源代码更容易看懂的了
daydreamer-x 该用户已被删除
发表于 2005-4-11 19:21:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2005-4-11 19:27:00 | 显示全部楼层
马甲![em06]

发表于 2005-4-11 20:18:00 | 显示全部楼层
以下是引用QIQI在2005-4-9 19:30:05的发言:

早就知道JAVA能反了,看雪最早的破解教程就劝大家千万不要用虚拟机语言,

原文好象是这么说的"现在的反编译器可以将那些,class的反的一点不差,建议大家在JAVA出来实编译器前选择学JAVA还要慎重考虑"

其实,JAVA目前这么火我觉得主要还是中国程序员的浮躁本质所决定的


能反小的不一定能反编译长的-_-b

而且,最起码变量名称肯定是丢了,反出来的可读性很差。也有可能算法会被泄漏。但是,总之,这个不能算是Java的什么大的问题。QIQI有点言重了,学Java是很有前途的。倒是等什么“实编译器”才是没有希望的。

另外,浮躁……汗……不要总是口气这么大,貌似中国程序届的领头羊一样。Java的发展,和中国程序员关系不大。Java是世界范围的火爆,不光在中国。
发表于 2005-4-12 00:00:00 | 显示全部楼层
========================

遮蔽了!!

========================

[此贴子已经被作者于2005-4-12 0:26:57编辑过]

 楼主| 发表于 2005-3-30 21:43:07 | 显示全部楼层 |阅读模式
怎么看LAVA程序的源代码?
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-7-9 03:23 , Processed in 0.015883 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表