public boolean runRead(InterfaceDxfTrans trans)
        throws IOException
    {
_L7:
        int section = getSection();
        if(section == 9)
        {
            trans.showMessage("EOF END");
            break; /* Loop/switch isn't completed */
        }
        boolean suppflag = trans.isSectionSupport(getTypeString(section));
        trans.showMessage("section :" + getTypeString(section));
        if(suppflag)
            break MISSING_BLOCK_LABEL_90;
        trans.showMessage("SKIP");
        if(!gotoENDSEC())
            return false;
        continue; /* Loop/switch isn't completed */
        section;
        JVM INSTR lookupswitch 5: default 169
    // 3: 172
    // 4: 193
    // 5: 214
    // 9: 140
    // 255: 169;
           goto _L1 _L2 _L3 _L4 _L5 _L1
_L1:
        continue; /* Loop/switch isn't completed */
_L5:
        trans.showMessage("end , read rows:" + countrows);
        break; /* Loop/switch isn't completed */
_L2:
        if(getStart() != 0)
            return false;
        parseTables(trans);
        continue; /* Loop/switch isn't completed */
_L3:
        if(getStart() != 0)
            return false;
        parseBlock(trans);
        continue; /* Loop/switch isn't completed */
_L4:
        if(getStart() != 0)
            return false;
        parseEntities(trans);
        if(true) goto _L7; else goto _L6
        IOException ex;
        ex;
        throw ex;
        local;
        close();
        JVM INSTR ret 4;
_L6:
        return true;
    }反编译出来的方法是这样的,是添加了混肴器了吗,有没有办法调整成正常的方法啊

解决方案 »

  1.   

    应该是,语法都不对,goto都出来了,肯定看不懂啦
      

  2.   

    你的反编译工具或者你的jdk版本不够高,所以反编译出来的某些代码是字节码而不是java代码。
      

  3.   

    http://hi.baidu.com/hehailin/blog/item/26fe748b3e2bde15c9fc7a56.html
    这个人的blog上有些相关的分析,lz自己看看是否有用吧.
    推荐一本书:透视Java ---反编译 修补 和逆向工程技术
      

  4.   


    那你请介绍一个版本够高的反编译工具或者JDK吧?大家在线苦等。。
      

  5.   

    反编译出来的goto,实际上应该是源代码中使用的标签
      

  6.   


    一般的判断逻辑也有可能会生成goto,实际上上面的代码并不太乱
      

  7.   

    正常的逻辑生成的代码的话,反编译出现JVM INSTR这种东西的概率好像不是很大.
    当然,我接触很少,推测. 
      

  8.   


    版本不高吧
    好像Jbuild就能反编译吧
    可以试下
      

  9.   

    稍微看看就知道源代码有个循环了
    标签jdk1.0就支持了,goto保留字
    ps:研究这些意义不大,天生jdk有2个jar包可以换着加密的
      

  10.   

    楼主想研究反编译的话,建议去看一看java虚拟机规范这本书