当前位置:  技术问答>java相关

高手请进,相对难题!

    来源: 互联网  发布时间:2015-04-22

    本文导语:  private static String a(String s1)     {         char ac[];         int i1;         int j1;         ac = s1.toCharArray();         i1 = ac.length;         j1 = 0;           goto _L1 _L9:         ac;  ...

private static String a(String s1)
    {
        char ac[];
        int i1;
        int j1;
        ac = s1.toCharArray();
        i1 = ac.length;
        j1 = 0;
          goto _L1
_L9:
        ac;
        j1;
        JVM INSTR dup2 ;
        JVM INSTR caload ;
        j1 % 5;
        JVM INSTR tableswitch 0 3: default 76
    //                   0 52
    //                   1 58
    //                   2 64
    //                   3 70;
           goto _L2 _L3 _L4 _L5 _L6
_L3:
        0x66;
          goto _L7
_L4:
        57;
          goto _L7
_L5:
        119;
          goto _L7
_L6:
        51;
          goto _L7
_L2:
        65;
_L7:
        JVM INSTR ixor ;
        (char);
        JVM INSTR castore ;
        j1++;
_L1:
        if(j1 

3 bipush 20

5 bipush 20

7 invokevirtual #6 

10 return

Method hello_java()

0 aload_0

1 invokespecial #5 

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:jdkbin 此外,须设置路径:SET CLASSPATH=c:myclasses;c:jdkbinmocha.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表示敬意,感谢他给我们留下这个工具软件。

如读者下载MOCHA有困难,可给笔者来电子邮件,笔者可将MOCHA寄去。

参考文献:

1) http://www.inter.nl.net/users/H.P.van.Vliet/mocha.htm

2) http://www.javasoft.com

3) http://java.sun.com

4) http://www.yahoo.com



文章来源:软件世界  


    
 
 

您可能感兴趣的文章:

  • linux sshd难题,求高手指点
  • 难道这没有高手吗?难道这没有乐于助人的高手?(高分酬谢62+50+50) iis7站长之家
  • 关于java读文件的难题,急需各位高手解答。
  • ●●●遇到难题,请高手指点,lvs双mail,mai用户在一台mysql上,实现多台mail轮流工作●●
  • 高分求教高手!难题!
  • 遇到一个难题,请教高手!!!
  • 超级难题:(  高手未必可以 { @_@ }   )
  • 请各位高手解决使用wget遇到的难题,谢谢!
  • 碰到一个难题,Linux高手请进,不胜感激! 愿以1000分相赠!
  • ###请教高手:UDP scocket传输策略的难题###up有分
  • 小弟初学java,今遇一难题,望众高手解答。
  • 有哪位高手肯帮小弟一个忙吗?我碰到了一个大难题!关于数组方面的!
  • Red Linux7.0安装的难题,拖了半年了,还没有解决,有谁能一试呢?只能37分了这么多了,高手们请进吧!!!!!!!!!!!!!!!!!!!!!!!
  • *** 难题, 关于触发事件, 请高手回答 ***
  • 100分难题,高手帮忙。关于printf的问题。
  • 几个有关邮件收发难题,请教各位高手!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高手,高手,高高手请进!
  • 有熟悉EXIM的高手高手么??
  • to 高手:学java应该怎样一步步学习,从菜鸟到高手.
  • 高分请高手,高手定能解决
  • 请问高手在linux中用什么命令可以做linux的启动盘???在等待高手??
  • 有高手研究Agent++麽?里面有个thread.h,蛮难读的,请高手指点
  • 难道高手区里的人就是高手?
  • 在dos下用bc31挑战高手******开发mssql程序,连接时报link err:undefined symbol GETNOTE in module DBEXTERN?(挑战高手)
  • 真正的linux高手,请看过来,看你符合高手标准不?
  • 难道这没有高手吗?难道这没有乐于助人的高手?(高分酬谢62+50+50)
  • 关于我对linux高手用yum,非高手用源码的理由
  • 高手救命,很急——ORACLE817安装在UNIXWARE711上,手工启动数据库后在netasst中连接错误,高手帮我看看?
  • 请教高手lvs的奇怪问题,我挺着急,希望高手别潜水,就就我,先谢谢了
  • 各个高手看看这个问题!本人第一次学习java所以要各位高手的帮助。。
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 我是新手,高手,高手,快来救我
  • EJB问题,请教高手(非高手莫进)
  • 请各位JAVA高手,网业高手看过来,我把能给的分都送出!!!只能给37分,哎!!
  • eWEEK沙龙征集高手座谈


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3