Menu

#746 Java.lang verifyError

v6.0
closed-works-for-me
VerifyError (3)
High
2019-12-06
2019-03-24
No

Hi

Everytime I attempt to obfuscate my client, I get this error.

And its extremely irratating. Been stuck on this for an extremely long time, I'm not to well experienced with programming as a whole.

C:\Users\N\Music>java -jar ClientBetaOBF.jar
Exception in thread "main" java.lang.VerifyError: Expecting a stackmap frame at branch target 55
Exception Details:
Location:
dawntained/RSApplet.run()V @44: ifnull
Reason:
Expected stackmap frame at this location.
Bytecode:
0x0000000: 2ab6 0086 2ab6 0095 2ab6 0086 2ab6 0096
0x0000010: 2ab6 0086 2ab6 0094 2ab6 0086 2ab6 0093
0x0000020: 2ab6 0086 2ab6 0097 2ab4 0054 c600 0b2a
0x0000030: b400 542a b600 bbb8 0082 033c 1101 003d
0x0000040: 043e 0336 0403 3605 a700 102a b400 4e15
0x0000050: 05b8 00b4 5084 0501 1505 100a a1ff efa7
0x0000060: 015b 2ab4 0046 9e00 192a 59b4 0046 0464
0x0000070: b500 462a b400 469a 0008 2ab7 0083 b11c
0x0000080: 3605 1d36 0611 012c 3d04 3eb8 00b4 3707
0x0000090: 2ab4 004e 1b2f 0994 9a00 0c15 053d 1506
0x00000a0: 3ea7 0024 1607 2ab4 004e 1b2f 949e 0018
0x00000b0: 110a 002a b400 4968 8516 072a b400 4e1b
0x00000c0: 2f65 6d88 3d1c 1019 a200 0610 193d 1c11
0x00000d0: 0100 a400 1c11 0100 3d2a b400 4985 1607
0x00000e0: 2ab4 004e 1b2f 6514 0028 6d65 883e 1d2a
0x00000f0: b400 49a4 0008 2ab4 0049 3e2a b400 4e1b
0x0000100: 1607 501b 0460 100a 703c 1d04 a400 2b03
0x0000110: 3605 a700 1e2a b400 4e15 052f 0994 9900
0x0000120: 0f2a b400 4e15 055c 2f1d 8561 5084 0501
0x0000130: 1505 100a a1ff e11d 2ab4 004a a200 082a
0x0000140: b400 4a3e 1d85 b800 b8a7 0045 593a 05b6
0x0000150: 00ab a700 3c2a 59b4 0050 b600 8d2a b200
0x0000160: 4cb5 0063 2ab2 004d b500 6403 b300 312a
0x0000170: 59b4 0053 b500 472a 03b5 0050 2ab6 008b
0x0000180: 2a59 b400 5ab5 0059 1504 1c60 3604 1504
0x0000190: 1101 00a1 ffc2 1504 1100 ff7e 3604 2ab4
0x00001a0: 0049 9e00 142a 1c11 03e8 682a b400 4910
0x00001b0: 0878 6cb5 0051 2ab6 008a 2ab4 0046 9cfe
0x00001c0: a42a b400 4602 a000 072a b700 83b1
Exception Handler Table:
bci [324, 329] => handler: 332

    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(Unknown Source)

Here's the method it mentions in that error. the RSApplet.run Method.

public void run() {
getGameComponent().addMouseListener(this);
getGameComponent().addMouseMotionListener(this);
getGameComponent().addKeyListener(this);
getGameComponent().addFocusListener(this);
getGameComponent().addMouseWheelListener(this);
if (gameFrame != null) {
gameFrame.addWindowListener(this);
}
Load.startUp();
int i = 0;
int j = 256;
int k = 1;
int i1 = 0;
int j1 = 0;
for (int k1 = 0; k1 < 10; k1++) {
aLongArray7[k1] = System.currentTimeMillis();
}

    while (anInt4 >= 0) {
        if (anInt4 > 0) {
            anInt4--;
            if (anInt4 == 0) {
                exit();
                return;
            }
        }
        int i2 = j;
        int j2 = k;
        j = 300;
        k = 1;
        long l1 = System.currentTimeMillis();
        if (aLongArray7[i] == 0L) {
            j = i2;
            k = j2;
        }
        else if (l1 > aLongArray7[i]) {
            j = (int) ((long) (2560 * delayTime) / (l1 - aLongArray7[i]));
        }
        if (j < 25) {
            j = 25;
        }
        if (j > 256) {
            j = 256;
            k = (int) ((long) delayTime - (l1 - aLongArray7[i]) / 10L);
        }
        if (k > delayTime) {
            k = delayTime;
        }
        aLongArray7[i] = l1;
        i = (i + 1) % 10;
        if (k > 1) {
            for (int k2 = 0; k2 < 10; k2++) {
                if (aLongArray7[k2] != 0L) {
                    aLongArray7[k2] += k;
                }
            }

        }
        if (k < minDelay) {
            k = minDelay;
        }
        try {
            Thread.sleep(k);
        }
        catch (InterruptedException e) {
            e.printStackTrace();
            j1++;
        }
        for (; i1 < 256; i1 += j) {
            setClickMode3(clickMode1);
            saveClickX = clickX;
            saveClickY = clickY;
            Client.clickPositionUpdateRequired = false;
            aLong29 = clickTime;
            clickMode1 = 0;
            processGameLoop();
            readIndex = writeIndex;
        }

        i1 &= 0xff;
        if (delayTime > 0) {
            fps = (1000 * j) / (delayTime * 256);
        }
        processDrawing();
        if (shouldDebug) {
            Utility.print("ntime:" + l1);
            for (int l2 = 0; l2 < 10; l2++) {
                int i3 = ((i - l2 - 1) + 20) % 10;
                Utility.print("otim" + i3 + ":" + aLongArray7[i3]);
            }
            Utility.print("fps:" + fps + " ratio:" + j + " count:" + i1);
            Utility.print("del:" + k + " deltime:" + delayTime + " mindel:" + minDelay);
            Utility.print("intex:" + j1 + " opos:" + i);
            shouldDebug = false;
            j1 = 0;
        }
    }
    if (anInt4 == -1) {
        exit();
    }
}

Please help me.

Discussion

  • Eric Lafortune

    Eric Lafortune - 2019-04-30

    I can't seem to reproduce the problem, working from the code that you provide. Do you perhaps have the option -dontpreverify in your configuration? Can you share a small project that illustrates the problem?

     
  • Eric Lafortune

    Eric Lafortune - 2019-04-30
    • status: open --> open-works-for-me
    • assigned_to: Eric Lafortune
     
  • T. Neidhart

    T. Neidhart - 2019-12-06
    • status: open-works-for-me --> closed-works-for-me
     
  • T. Neidhart

    T. Neidhart - 2019-12-06

    Without more details its impossible to figure out what is going wrong.
    The most likely explanation is that you use -dontpreverify when processing the jar which will omit mandatory stackmap frames.

     

Log in to post a comment.