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;
}反编译出来的方法是这样的,是添加了混肴器了吗,有没有办法调整成正常的方法啊
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;
}反编译出来的方法是这样的,是添加了混肴器了吗,有没有办法调整成正常的方法啊
这个人的blog上有些相关的分析,lz自己看看是否有用吧.
推荐一本书:透视Java ---反编译 修补 和逆向工程技术
那你请介绍一个版本够高的反编译工具或者JDK吧?大家在线苦等。。
一般的判断逻辑也有可能会生成goto,实际上上面的代码并不太乱
当然,我接触很少,推测.
版本不高吧
好像Jbuild就能反编译吧
可以试下
标签jdk1.0就支持了,goto保留字
ps:研究这些意义不大,天生jdk有2个jar包可以换着加密的