j;
JVM INSTR swap ;
JVM INSTR icmplt 28;
goto _L2 _L3
_L2:
aiiillliiiliillil = aiiillliiiliillil1;
return aiiillliiiliillil;
} private static void _$1(IIIlllIIIlIIllIl iiillliiiliillil, IIIlllIIIlIIllIl iiillliiiliillil1, float f, int i, boolean flag, boolean flag1)
{
double d;
double d1;
int l;
int i1;
int j1;
int k1;
d = iiillliiiliillil1._$1 - iiillliiiliillil._$1;
d1 = iiillliiiliillil1._$2 - iiillliiiliillil._$2;
f = (float)Math.floor(f);
int j = (int)f / 2;
int k = (int)f - j;
k--;
if(d == 0.0D && d1 == 0.0D)
throw new IllegalArgumentException("cannot compute: from == to");
if(d == 0.0D)
{
i1 = 0;
l = d1 > 0.0D ? -j : j;
j1 = d1 > 0.0D ? -k : k;
k1 = 0;
break MISSING_BLOCK_LABEL_454;
}
if(d1 == 0.0D)
{
l = 0;
i1 = d > 0.0D ? j : -j;
j1 = 0;
k1 = d > 0.0D ? k : -k;
break MISSING_BLOCK_LABEL_454;
}
2.0F;
f;
JVM INSTR swap ;
JVM INSTR fcmpl ;
JVM INSTR ifne 215;
goto _L1 _L2
_L1:
break MISSING_BLOCK_LABEL_178;
_L2:
break MISSING_BLOCK_LABEL_215;
i1 = d > 0.0D ? 1 : -1;
l = d1 > 0.0D ? -1 : 1;
j1 = 0;
k1 = 0;
break MISSING_BLOCK_LABEL_454;
3F;
f;
JVM INSTR swap ;
JVM INSTR fcmpl ;
JVM INSTR ifne 262;
goto _L3 _L4
_L3:
break MISSING_BLOCK_LABEL_223;
_L4:
break MISSING_BLOCK_LABEL_262;
i1 = d > 0.0D ? 1 : -1;
l = d1 > 0.0D ? -1 : 1;
j1 = l;
k1 = i1;
break MISSING_BLOCK_LABEL_454;
2.0F;
f;
JVM INSTR swap ;
JVM INSTR fdiv ;
(double);
double d2;
d2;
double d3 = Math.sqrt(d * d + d1 * d1);
l = d1 > 0.0D ? -(int)Math.rint((d2 * d1) / d3) : (int)Math.rint(-((d2 * d1) / d3));
i1 = d > 0.0D ? (int)Math.rint((d2 * d) / d3) : -(int)Math.rint(-((d2 * d) / d3));
j1 = l;
k1 = i1;
j1;
l;
JVM INSTR swap ;
JVM INSTR iadd ;
j1;
l;
JVM INSTR swap ;
JVM INSTR iadd ;
JVM INSTR imul ;
k1;
i1;
JVM INSTR swap ;
JVM INSTR iadd ;
k1;
i1;
JVM INSTR swap ;
JVM INSTR iadd ;
JVM INSTR imul ;
JVM INSTR iadd ;
(double);
Math.sqrt();
double d4;
d4;
if(d4 > (double)f)
if(Math.abs(l) > Math.abs(i1))
{
if(l > 0)
l--;
else
l++;
} else
if(i1 > 0)
i1--;
else
i1++;
if(!flag) goto _L6; else goto _L5
_L5:
2;
i;
JVM INSTR swap ;
JVM INSTR icmpne 560;
goto _L7 _L6
_L7:
_$12;
iiillliiiliillil;
0;
JVM INSTR swap ;
_$1;
(float)l;
JVM INSTR fadd ;
(float)k1;
JVM INSTR fsub ;
(double);
Math.floor();
(int);
JVM INSTR iastore ;
_$13;
iiillliiiliillil;
0;
JVM INSTR swap ;
_$2;
(float)i1;
JVM INSTR fadd ;
(float)l;
JVM INSTR fadd ;
(double);
Math.floor();
(int);
JVM INSTR iastore ;
_$12;
iiillliiiliillil;
1;
JVM INSTR swap ;
_$1;
(float)j1;
JVM INSTR fsub ;
(float)k1;
JVM INSTR fsub ;
(double);
Math.floor();
(int);
JVM INSTR iastore ;
_$13;
iiillliiiliillil;
1;
JVM INSTR swap ;
_$2;
(float)k1;
JVM INSTR fsub ;
(float)l;
JVM INSTR fadd ;
(double);
Math.floor();
(int);
JVM INSTR iastore ;
goto _L8
_L6:
_$12;
iiillliiiliillil;
0;
JVM INSTR swap ;
_$1;
(float)l;
JVM INSTR fadd ;
(double);
Math.floor();
(int);
JVM INSTR iastore ;
_$13;
iiillliiiliillil;
0;
JVM INSTR swap ;
_$2;
(float)i1;
JVM INSTR fadd ;
(double);
Math.floor();
(int);
JVM INSTR iastore ;
_$12;
iiillliiiliillil;
1;
JVM INSTR swap ;
_$1;
(float)j1;
JVM INSTR fsub ;
(double);
Math.floor();
(int);
JVM INSTR iastore ;
_$13;
iiillliiiliillil;
1;
JVM INSTR swap ;
_$2;
(float)k1;
JVM INSTR fsub ;
(double);
Math.floor();
(int);
JVM INSTR iastore ;
_L8:
if(!flag1) goto _L10; else goto _L9
_L9:
2;
i;
JVM INSTR swap ;
JVM INSTR icmpne 742;
goto _L11 _L10
_L11:
_$12;
iiillliiiliillil1;
2;
JVM INSTR swap ;
_$1;
(float)j1;
JVM INSTR fsub ;
(float)i1;
JVM INSTR fadd ;
(double);
Math.floor();
(int);
JVM INSTR iastore ;
_$13;
iiillliiiliillil1;
2;
JVM INSTR swap ;
_$2;
(float)k1;
JVM INSTR fsub ;
(float)j1;
JVM INSTR fsub ;
(double);
Math.floor();
(int);
JVM INSTR iastore ;
_$12;
iiillliiiliillil1;
3;
JVM INSTR swap ;
_$1;
(float)l;
JVM INSTR fadd ;
(float)i1;
JVM INSTR fadd ;
(double);
Math.floor();
(int);
JVM INSTR iastore ;
_$13;
iiillliiiliillil1;
3;
JVM INSTR swap ;
_$2;
(float)i1;
JVM INSTR fadd ;
(float)j1;
JVM INSTR fsub ;
(double);
Math.floor();
(int);
JVM INSTR iastore ;
goto _L12
_L10:
_$12;
iiillliiiliillil1;
2;
JVM INSTR swap ;
_$1;
(float)j1;
JVM INSTR fsub ;
(double);
Math.floor();
(int);
JVM INSTR iastore ;
_$13;
iiillliiiliillil1;
2;
JVM INSTR swap ;
_$2;
(float)k1;
JVM INSTR fsub ;
(double);
Math.floor();
(int);
JVM INSTR iastore ;
_$12;
iiillliiiliillil1;
3;
JVM INSTR swap ;
_$1;
(float)l;
JVM INSTR fadd ;
(double);
Math.floor();
(int);
JVM INSTR iastore ;
_$13;
iiillliiiliillil1;
3;
JVM INSTR swap ;
_$2;
(float)i1;
JVM INSTR fadd ;
(double);
Math.floor();
(int);
JVM INSTR iastore ;
_L12:
} private static void _$1(Graphics g, IIIlllIIIlIIllIl iiillliiiliillil, IIIlllIIIlIIllIl iiillliiiliillil1, IIIlllIIIlIIllIl iiillliiiliillil2, float f, int i, int j, boolean flag,
boolean flag1, Rectangle rectangle)
{
if(iiillliiiliillil1._$1 == iiillliiiliillil2._$1 && iiillliiiliillil1._$2 == iiillliiiliillil2._$2)
return;
iiillliiiliillil2;
iiillliiiliillil1;
JVM INSTR swap ;
j;
f;
JVM INSTR swap ;
flag1;
flag;
JVM INSTR swap ;
_$1();
if(_$2(rectangle))
{
g.fillPolygon(_$12, _$13, 4);
g.drawPolygon(_$12, _$13, 4);
}
if(flag) goto _L2; else goto _L1
_L1:
int k = (int)Math.floor(f);
k;
k;
JVM INSTR swap ;
2;
JVM INSTR idiv ;
JVM INSTR isub ;
1;
JVM INSTR isub ;
(float);
f;
if((double)f < 0.5D || (int)Math.floor(iiillliiiliillil1._$1 + f + 1.0F) < rectangle.x || (int)Math.floor(iiillliiiliillil1._$1 - f - 1.0F) > rectangle.x + rectangle.width || (int)Math.floor(iiillliiiliillil1._$2 + f + 1.0F) < rectangle.y || (int)Math.floor(iiillliiiliillil1._$2 - f - 1.0F) > rectangle.y + rectangle.height) goto _L2; else goto _L3
_L3:
iiillliiiliillil1;
g;
JVM INSTR swap ;
_$1;
f;
JVM INSTR fsub ;
(double);
Math.floor();
(int);
(int)Math.floor(iiillliiiliillil1._$2 - f);
f;
2.0F;
JVM INSTR swap ;
JVM INSTR fmul ;
1.0F;
JVM INSTR fadd ;
(int);
f;
2.0F;
JVM INSTR swap ;
JVM INSTR fmul ;
1.0F;
JVM INSTR fadd ;
(int);
360;
0;
JVM INSTR swap ;
fillArc();
_L2:
_$12;
0;
_$14;
4;
0;
JVM INSTR swap ;
System.arraycopy();
_$13;
0;
_$15;
4;
0;
JVM INSTR swap ;
System.arraycopy();
} public static void _$1(Graphics g, IIIlllIIIlIIllIl aiiillliiiliillil[], int i, float f, int j, int k, lIIlIllIIIlIlIII liililliiililiii)
{
float f1;
double d = liililliiililiii != null ? liililliiililiii._$13() : 1.0D;
f1 = (float)((double)f * d);
1.0F;
f1;
JVM INSTR swap ;
JVM INSTR fcmpg ;
JVM INSTR ifgt 43;
goto _L1 _L2
_L1:
break MISSING_BLOCK_LABEL_32;
_L2:
break MISSING_BLOCK_LABEL_43;
aiiillliiiliillil;
g;
JVM INSTR swap ;
liililliiililiii;
i;
JVM INSTR swap ;
_$1();
return;
i;
aiiillliiiliillil;
JVM INSTR swap ;
liililliiililiii;
_$1();
IIIlllIIIlIIllIl aiiillliiiliillil1[];
aiiillliiiliillil1;
3;
i;
JVM INSTR swap ;
JVM INSTR icmplt 89;
goto _L3 _L4
_L3:
i;
aiiillliiiliillil1;
JVM INSTR swap ;
_$2();
int l;
l;
g;
_$28;
null;
l;
JVM INSTR swap ;
j;
f1;
JVM INSTR swap ;
k;
_$1();
goto _L5
_L4:
2;
i;
JVM INSTR swap ;
JVM INSTR icmpne 112;
goto _L6 _L5
_L6:
aiiillliiiliillil1;
g;
JVM INSTR swap ;
null;
2;
JVM INSTR swap ;
j;
f1;
JVM INSTR swap ;
k;
_$1();
_L5:
} private static void _$1(Graphics g, IIIlllIIIlIIllIl aiiillliiiliillil[], int i, lIIlIllIIIlIlIII liililliiililiii)
{
i;
aiiillliiiliillil;
JVM INSTR swap ;
liililliiililiii;
_$1();
IIIlllIIIlIIllIl aiiillliiiliillil1[];
aiiillliiiliillil1;
2;
i;
JVM INSTR swap ;
JVM INSTR icmpne 74;
goto _L1 _L2
_L1:
break MISSING_BLOCK_LABEL_15;
_L2:
break MISSING_BLOCK_LABEL_74;
aiiillliiiliillil1;
g;
JVM INSTR swap ;
0;
JVM INSTR aaload ;
_$1;
(double);
Math.floor();
(int);
0;
aiiillliiiliillil1;
JVM INSTR swap ;
JVM INSTR aaload ;
_$2;
(double);
Math.floor();
(int);
1;
aiiillliiiliillil1;
JVM INSTR swap ;
JVM INSTR aaload ;
_$1;
(double);
Math.floor();
(int);
1;
aiiillliiiliillil1;
JVM INSTR swap ;
JVM INSTR aaload ;
_$2;
(double);
常见的混淆软件差不多只是弄出很多00oooo0000000来
这个混淆的几乎读不懂
JVM INSTR aaload ;
JVM INSTR aaload ;这是什么??
明白了。__________________________________________________
我怀疑 这不是由软件混淆的JAVA代码。 不可思议,java代码还能这样写: JVM INSTR swap ;
JVM INSTR aaload ;
__________________________________________________
ft!
look this, you'll get how to get it!http://www.chinaunix.net/jh/26/231125.html
咿呀!混淆后的class文件拿到别的运行时系统下,java虚拟机绝对不认识。 流浪的狗 回复于:2003-12-26 13:33:02
经过混淆后的java应用程序对java虚拟机有要求了,这样就违背了一次编写,到处运行的初衷了! ====================================================================楼主,这不叫软件混淆的 。真的,这跟通常所说的软件混淆是不同的。
A: Java混淆编译器是在Sun JDK中提供的Java编译器(javac)的基础上完成的,修
改了代码生成过程,对编译器生成的中间代码进行混淆,最后再生成class文件,
这样编译和混淆只需要一个步骤就可以完成。另外可以在源程序中插入符号保留指
令来控制哪些符号需要保留,不需要单独的配置。
==========================================================================
楼主,它改了javac 就像别人问你 abcdefg 在JAVA中是什么意思 ?你一定不知道吧!
但他就说 abcdefg 表示int 的意思 , 因为他修改jvm , 现在abcdefg 在他的jvm里就是int
jbuilder 的那个混淆有反编译器能破么?
其实好像现在很多人的程序写的时候逗没混淆的哦
jbuilder 的那个混淆有反编译器能破么?
========================================================如果你写了一个C++程序只有几行,你说能不能反编译?理论上所有的语言都可以反编译。只不过JAVA的执行程序记录了太多信息,所以JAVA的执行程序比二进制执行程序容易编译而已。如果你的JAVA程序很复杂,那么就算你的JAVA.class不加密,别人也破不了。