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.
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?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.