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;

解决方案 »

  1.   


            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);
      

  2.   

    混淆出这么多JVM INSTR来啊
    常见的混淆软件差不多只是弄出很多00oooo0000000来
    这个混淆的几乎读不懂
      

  3.   

    明白了。我怀疑 这不是由软件混淆的JAVA代码。 不可思议,java代码还能这样写:     JVM INSTR swap ;
        JVM INSTR aaload ;
      

  4.   

    这个文件是 .java 文件吗???
      

  5.   

    这样做的实际意义是什么?防止别人改代码吗?楼上 JVM INSTR swap ;
        JVM INSTR aaload ;这是什么??
      

  6.   

    game0ver12345(sfsfdsfdsdfsf) ( ) 信誉:100  2004-04-20 15:55:00  得分:0 
     
     
      明白了。__________________________________________________
    我怀疑 这不是由软件混淆的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
      
     
      

  7.   

    可能就是用了jbuilder的Obfuscate功能进行编译!
      

  8.   

    流浪的狗 回复于:2003-12-26 13:57:20 
    咿呀!混淆后的class文件拿到别的运行时系统下,java虚拟机绝对不认识。 流浪的狗 回复于:2003-12-26 13:33:02 
    经过混淆后的java应用程序对java虚拟机有要求了,这样就违背了一次编写,到处运行的初衷了! ====================================================================楼主,这不叫软件混淆的 。真的,这跟通常所说的软件混淆是不同的。
      

  9.   

    Q: Java混淆编译器是如何工作的? 
    A: Java混淆编译器是在Sun JDK中提供的Java编译器(javac)的基础上完成的,修 
    改了代码生成过程,对编译器生成的中间代码进行混淆,最后再生成class文件, 
    这样编译和混淆只需要一个步骤就可以完成。另外可以在源程序中插入符号保留指 
    令来控制哪些符号需要保留,不需要单独的配置。 
      
    ==========================================================================
    楼主,它改了javac 就像别人问你 abcdefg 在JAVA中是什么意思 ?你一定不知道吧!
    但他就说 abcdefg 表示int 的意思  , 因为他修改jvm , 现在abcdefg 在他的jvm里就是int 
      

  10.   

    其实好像现在很多人的程序写的时候逗没混淆的哦
    jbuilder 的那个混淆有反编译器能破么?
      

  11.   

    回复人: zealVampire(蚊子) ( ) 信誉:100  2004-04-20 17:47:00  得分:0 
     
     
      其实好像现在很多人的程序写的时候逗没混淆的哦
    jbuilder 的那个混淆有反编译器能破么?
     
     
    ========================================================如果你写了一个C++程序只有几行,你说能不能反编译?理论上所有的语言都可以反编译。只不过JAVA的执行程序记录了太多信息,所以JAVA的执行程序比二进制执行程序容易编译而已。如果你的JAVA程序很复杂,那么就算你的JAVA.class不加密,别人也破不了。
      

  12.   

    我写个冬冬上百个class,没有文档反编译的东东恐怕也很难看懂的。反编译出来的名称跟原来还是不一样的。30个左右还可以很快读懂,上百个想读懂就很难了,有这时间作这事情也不一定合算。网上开源的东东多的是。学那个可能可以学到更多。