Vineflower / vineflower

Modern Java decompiler aiming to be as accurate as possible, with an emphasis on output quality. Fork of the Fernflower decompiler.
https://vineflower.org/
Apache License 2.0
1.3k stars 91 forks source link

Can't Decompile #299

Open l0n3rs opened 1 year ago

l0n3rs commented 1 year ago

Can't Decompile,Error Info:

// $QF: Couldn't be decompiled
        // Please report this to the Quiltflower issue tracker, at https://github.com/QuiltMC/quiltflower/issues with a copy of the class file (if you have the rights to distribute it!)
        // java.lang.RuntimeException: parsing failure!
        //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:215)
        //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:141)
        //
        // Bytecode:
        // 000: iload 1
        // 001: i2l
        // 002: bipush 32
        // 004: lshl
        // 005: iload 2
        // 006: i2l
        // 007: bipush 48
        // 009: lshl
        // 00a: bipush 32
        // 00c: lushr
        // 00d: lor
        // 00e: iload 3
        // 00f: i2l
        // 010: bipush 48
        // 012: lshl
        // 013: bipush 48
        // 015: lushr
        // 016: lor
        // 017: lstore 4
        // 019: lload 4
        // 01b: dup2
        // 01c: ldc2_w 121717696934909
        // 01f: lxor
        // 020: dup2
        // 021: bipush 32
        // 023: lushr
        // 024: l2i
        // 025: istore 6
        // 027: dup2
        // 028: bipush 32
        // 02a: lshl
        // 02b: bipush 48
        // 02d: lushr
        // 02e: l2i
        // 02f: istore 7
        // 031: dup2
        // 032: bipush 48
        // 034: lshl
        // 035: bipush 48
        // 037: lushr
        // 038: l2i
        // 039: istore 8
        // 03b: pop2
        // 03c: pop2
        // 03d: aload 0
        // 03e: invokespecial aimlvmkixobf.P ()Ljava/lang/String;
        // 041: astore 10
        // 043: getstatic aimlvmkixobf.f I
        // 046: aload 0
        // 047: invokevirtual aimlvmkixobf.K ()Ljava/lang/String;
        // 04a: astore 11
        // 04c: aload 0
        // 04d: invokespecial aimlvmkixobf.C ()Ljava/lang/String;
        // 050: astore 12
        // 052: istore 9
        // 054: aconst_null
        // 055: astore 13
        // 057: ldc 1526310150
        // 059: sipush -23148
        // 05c: i2c
        // 05d: iadd
        // 05e: ldc -1526310150
        // 060: sipush -17565
        // 063: i2c
        // 064: ineg
        // 065: iadd
        // 066: lload 4
        // 068: l2i
        // 069: invokestatic aimlvmkixobf.a (III)Ljava/lang/String;
        // 06c: astore 14
        // 06e: aload 0
        // 06f: getfield aimlvmkixobf.b Ljavax/servlet/http/HttpServletRequest;
        // 072: invokeinterface javax/servlet/http/HttpServletRequest.getCookies ()[Ljavax/servlet/http/Cookie; 1
        // 077: astore 15
        // 079: aload 15
        // 07b: ifnull 0e0
        // 07e: bipush 0
        // 07f: istore 16
        // 081: iload 16
        // 083: aload 15
        // 085: arraylength
        // 086: if_icmpge 0e0
        // 089: aload 15
        // 08b: iload 16
        // 08d: aaload
        // 08e: astore 17
        // 090: aload 17
        // 092: invokevirtual javax/servlet/http/Cookie.getName ()Ljava/lang/String;
        // 095: iload 9
        // 097: ifne 0ef
        // 09a: ifnull 0d8
        // 09d: goto 0a1
        // 0a0: athrow
        // 0a1: aload 17
        // 0a3: invokevirtual javax/servlet/http/Cookie.getName ()Ljava/lang/String;
        // 0a6: ldc 1526310150
        // 0a8: sipush -23171
        // 0ab: i2c
        // 0ac: iadd
        // 0ad: ldc 1526310150
        // 0af: sipush -13837
        // 0b2: i2c
        // 0b3: iadd
        // 0b4: lload 4
        // 0b6: l2i
        // 0b7: invokestatic aimlvmkixobf.a (III)Ljava/lang/String;
        // 0ba: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
        // 0bd: iload 3
        // 0be: ifle 0dd
        // 0c1: ifeq 0d8
        // 0c4: goto 0c8
        // 0c7: athrow
        // 0c8: aload 17
        // 0ca: invokevirtual javax/servlet/http/Cookie.getValue ()Ljava/lang/String;
        // 0cd: astore 14
        // 0cf: aload 14
        // 0d1: bipush 16
        // 0d3: invokevirtual java/lang/String.substring (I)Ljava/lang/String;
        // 0d6: astore 14
        // 0d8: iinc 16 1
        // 0db: iload 9
        // 0dd: ifeq 081
        // 0e0: aload 0
        // 0e1: getfield aimlvmkixobf.d Ljavax/servlet/ServletContext;
        // 0e4: iload 2
        // 0e5: iflt 0ef
        // 0e8: aload 14
        // 0ea: invokeinterface javax/servlet/ServletContext.getAttribute (Ljava/lang/String;)Ljava/lang/Object; 2
        // 0ef: astore 16
        // 0f1: iload 1
        // 0f2: iflt 125
        // 0f5: aload 16
        // 0f7: ifnull 125
        // 0fa: aload 16
        // 0fc: bipush 4
        // 0fd: anewarray 76
        // 100: dup
        // 101: bipush 0
        // 102: aload 0
        // 103: getfield aimlvmkixobf.b Ljavax/servlet/http/HttpServletRequest;
        // 106: aastore
        // 107: dup
        // 108: bipush 1
        // 109: aload 0
        // 10a: getfield aimlvmkixobf.c Ljavax/servlet/http/HttpServletResponse;
        // 10d: aastore
        // 10e: dup
        // 10f: bipush 2
        // 110: aload 10
        // 112: aastore
        // 113: dup
        // 114: bipush 3
        // 115: aload 11
        // 117: aastore
        // 118: invokevirtual java/lang/Object.equals (Ljava/lang/Object;)Z
        // 11b: pop
        // 11c: iload 9
        // 11e: ifeq 413
        // 121: goto 125
        // 124: athrow
        // 125: aload 0
        // 126: getfield aimlvmkixobf.b Ljavax/servlet/http/HttpServletRequest;
        // 129: ldc 1526310150
        // 12b: sipush -23149
        // 12e: i2c
        // 12f: iadd
        // 130: ldc 1526310150
        // 132: sipush -22593
        // 135: i2c
        // 136: iadd
        // 137: lload 4
        // 139: l2i
        // 13a: invokestatic aimlvmkixobf.a (III)Ljava/lang/String;
        // 13d: invokeinterface javax/servlet/http/HttpServletRequest.getHeader (Ljava/lang/String;)Ljava/lang/String; 2
        // 142: ifnull 180
        // 145: goto 149
        // 148: athrow
        // 149: aload 0
        // 14a: getfield aimlvmkixobf.b Ljavax/servlet/http/HttpServletRequest;
        // 14d: ldc 1526310150
        // 14f: sipush -23169
        // 152: i2c
        // 153: iadd
        // 154: ldc 1526310150
        // 156: sipush 24989
        // 159: iadd
        // 15a: lload 4
        // 15c: l2i
        // 15d: invokestatic aimlvmkixobf.a (III)Ljava/lang/String;
        // 160: invokeinterface javax/servlet/http/HttpServletRequest.getHeader (Ljava/lang/String;)Ljava/lang/String; 2
        // 165: aload 10
        // 167: invokevirtual java/lang/String.indexOf (Ljava/lang/String;)I
        // 16a: bipush -1
        // 16b: if_icmpeq 180
        // 16e: goto 172
        // 171: athrow
        // 172: aload 12
        // 174: bipush 15
        // 176: bipush 23
        // 178: invokevirtual java/lang/String.substring (II)Ljava/lang/String;
        // 17b: astore 13
        // 17d: goto 413
        // 180: aconst_null
        // 181: astore 17
        // 183: aload 0
        // 184: getfield aimlvmkixobf.b Ljavax/servlet/http/HttpServletRequest;
        // 187: ldc 1526310150
        // 189: sipush -23163
        // 18c: i2c
        // 18d: iadd
        // 18e: ldc -1526310150
        // 190: sipush -14103
        // 193: i2c
        // 194: ineg
        // 195: iadd
        // 196: lload 4
        // 198: l2i
        // 199: invokestatic aimlvmkixobf.a (III)Ljava/lang/String;
        // 19c: invokeinterface javax/servlet/http/HttpServletRequest.getHeader (Ljava/lang/String;)Ljava/lang/String; 2
        // 1a1: astore 18
        // 1a3: aload 12
        // 1a5: bipush 16
        // 1a7: bipush 24
        // 1a9: invokevirtual java/lang/String.substring (II)Ljava/lang/String;
        // 1ac: astore 13
        // 1ae: aload 18
        // 1b0: ldc 1526310150
        // 1b2: sipush -23172
        // 1b5: i2c
        // 1b6: iadd
        // 1b7: iload 3
        // 1b8: ifle 1dc
        // 1bb: ldc -1526310150
        // 1bd: sipush -16663
        // 1c0: i2c
        // 1c1: ineg
        // 1c2: iadd
        // 1c3: lload 4
        // 1c5: l2i
        // 1c6: invokestatic aimlvmkixobf.a (III)Ljava/lang/String;
        // 1c9: invokevirtual java/lang/String.contains (Ljava/lang/CharSequence;)Z
        // 1cc: ifeq 1eb
        // 1cf: aload 0
        // 1d0: getfield aimlvmkixobf.b Ljavax/servlet/http/HttpServletRequest;
        // 1d3: aload 10
        // 1d5: invokeinterface javax/servlet/http/HttpServletRequest.getParameter (Ljava/lang/String;)Ljava/lang/String; 2
        // 1da: iload 6
        // 1dc: swap
        // 1dd: iload 7
        // 1df: swap
        // 1e0: iload 8
        // 1e2: swap
        // 1e3: invokestatic aimlvmkixobf.a (IIILjava/lang/String;)[B
        // 1e6: astore 17
        // 1e8: goto 36e
        // 1eb: aload 0
        // 1ec: getfield aimlvmkixobf.b Ljavax/servlet/http/HttpServletRequest;
        // 1ef: invokeinterface javax/servlet/http/HttpServletRequest.getInputStream ()Ljavax/servlet/ServletInputStream; 1
        // 1f4: astore 19
        // 1f6: new java/io/ByteArrayOutputStream
        // 1f9: dup
        // 1fa: invokespecial java/io/ByteArrayOutputStream.<init> ()V
        // 1fd: astore 20
        // 1ff: bipush 0
        // 200: istore 21
        // 202: aload 19
        // 204: invokevirtual java/io/InputStream.read ()I
        // 207: dup
        // 208: istore 21
        // 20a: bipush -1
        // 20b: if_icmpeq 22b
        // 20e: aload 20
        // 210: iload 21
        // 212: invokevirtual java/io/ByteArrayOutputStream.write (I)V
        // 215: iload 9
        // 217: iload 2
        // 218: iflt 220
        // 21b: ifne 413
        // 21e: iload 9
        // 220: ifeq 202
        // 223: iload 1
        // 224: ifle 215
        // 227: goto 22b
        // 22a: athrow
        // 22b: aload 20
        // 22d: invokevirtual java/io/ByteArrayOutputStream.toByteArray ()[B
        // 230: astore 22
        // 232: new java/lang/String
        // 235: dup
        // 236: aload 22
        // 238: ldc 1526310150
        // 23a: sipush -23147
        // 23d: i2c
        // 23e: iadd
        // 23f: ldc 1526310150
        // 241: sipush -10357
        // 244: i2c
        // 245: iadd
        // 246: lload 4
        // 248: l2i
        // 249: invokestatic aimlvmkixobf.a (III)Ljava/lang/String;
        // 24c: invokespecial java/lang/String.<init> ([BLjava/lang/String;)V
        // 24f: astore 23
        // 251: aload 18
        // 253: ldc 1526310150
        // 255: sipush -23164
        // 258: i2c
        // 259: iadd
        // 25a: ldc 1526310150
        // 25c: sipush -17615
        // 25f: i2c
        // 260: iadd
        // 261: lload 4
        // 263: l2i
        // 264: invokestatic aimlvmkixobf.a (III)Ljava/lang/String;
        // 267: invokevirtual java/lang/String.contains (Ljava/lang/CharSequence;)Z
        // 26a: iload 3
        // 26b: iflt 2f0
        // 26e: ifeq 2d8
        // 271: ldc 1526310150
        // 273: sipush -23173
        // 276: i2c
        // 277: iadd
        // 278: ldc -1526310150
        // 27a: sipush -30748
        // 27d: iadd
        // 27e: lload 4
        // 280: l2i
        // 281: invokestatic aimlvmkixobf.a (III)Ljava/lang/String;
        // 284: bipush 1
        // 285: anewarray 76
        // 288: dup
        // 289: bipush 0
        // 28a: aload 10
        // 28c: aastore
        // 28d: invokestatic java/lang/String.format (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        // 290: astore 24
        // 292: aload 23
        // 294: aload 24
        // 296: invokevirtual java/lang/String.indexOf (Ljava/lang/String;)I
        // 299: istore 25
        // 29b: aload 23
        // 29d: ldc "\""
        // 29f: bipush 1
        // 2a0: anewarray 76
        // 2a3: dup
        // 2a4: bipush 0
        // 2a5: aload 10
        // 2a7: aastore
        // 2a8: invokestatic java/lang/String.format (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        // 2ab: iload 25
        // 2ad: aload 24
        // 2af: invokevirtual java/lang/String.length ()I
        // 2b2: iadd
        // 2b3: invokevirtual java/lang/String.indexOf (Ljava/lang/String;I)I
        // 2b6: istore 26
        // 2b8: aload 23
        // 2ba: iload 25
        // 2bc: aload 24
        // 2be: invokevirtual java/lang/String.length ()I
        // 2c1: iadd
        // 2c2: iload 26
        // 2c4: invokevirtual java/lang/String.substring (II)Ljava/lang/String;
        // 2c7: iload 6
        // 2c9: swap
        // 2ca: iload 7
        // 2cc: swap
        // 2cd: iload 8
        // 2cf: swap
        // 2d0: invokestatic aimlvmkixobf.a (IIILjava/lang/String;)[B
        // 2d3: astore 17
        // 2d5: goto 36e
        // 2d8: aload 18
        // 2da: ldc 1526310150
        // 2dc: sipush -23170
        // 2df: i2c
        // 2e0: iadd
        // 2e1: ldc -1526310150
        // 2e3: sipush -24104
        // 2e6: iadd
        // 2e7: lload 4
        // 2e9: l2i
        // 2ea: invokestatic aimlvmkixobf.a (III)Ljava/lang/String;
        // 2ed: invokevirtual java/lang/String.contains (Ljava/lang/CharSequence;)Z
        // 2f0: iload 2
        // 2f1: ifle 2fe
        // 2f4: ifeq 36a
        // 2f7: ldc 1526310150
        // 2f9: sipush -23165
        // 2fc: i2c
        // 2fd: iadd
        // 2fe: ldc 1526310150
        // 300: sipush -32168
        // 303: i2c
        // 304: iadd
        // 305: lload 4
        // 307: l2i
        // 308: invokestatic aimlvmkixobf.a (III)Ljava/lang/String;
        // 30b: bipush 1
        // 30c: anewarray 76
        // 30f: dup
        // 310: bipush 0
        // 311: aload 10
        // 313: aastore
        // 314: invokestatic java/lang/String.format (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        // 317: astore 24
        // 319: aload 23
        // 31b: aload 24
        // 31d: invokevirtual java/lang/String.indexOf (Ljava/lang/String;)I
        // 320: istore 25
        // 322: aload 23
        // 324: ldc 1526310150
        // 326: sipush -23146
        // 329: i2c
        // 32a: iadd
        // 32b: ldc -1526310150
        // 32d: sipush -31045
        // 330: iadd
        // 331: lload 4
        // 333: l2i
        // 334: invokestatic aimlvmkixobf.a (III)Ljava/lang/String;
        // 337: bipush 1
        // 338: anewarray 76
        // 33b: dup
        // 33c: bipush 0
        // 33d: aload 10
        // 33f: aastore
        // 340: invokestatic java/lang/String.format (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        // 343: iload 25
        // 345: invokevirtual java/lang/String.indexOf (Ljava/lang/String;I)I
        // 348: istore 26
        // 34a: aload 23
        // 34c: iload 25
        // 34e: aload 24
        // 350: invokevirtual java/lang/String.length ()I
        // 353: iadd
        // 354: iload 26
        // 356: invokevirtual java/lang/String.substring (II)Ljava/lang/String;
        // 359: iload 6
        // 35b: swap
        // 35c: iload 7
        // 35e: swap
        // 35f: iload 8
        // 361: swap
        // 362: invokestatic aimlvmkixobf.a (IIILjava/lang/String;)[B
        // 365: astore 17
        // 367: goto 36e
        // 36a: aload 22
        // 36c: astore 17
        // 36e: aload 12
        // 370: bipush 17
        // 372: bipush 25
        // 374: invokevirtual java/lang/String.substring (II)Ljava/lang/String;
        // 377: astore 13
        // 379: ldc 1526310150
        // 37b: sipush -23174
        // 37e: i2c
        // 37f: iadd
        // 380: ldc 1526310150
        // 382: sipush 23704
        // 385: iadd
        // 386: lload 4
        // 388: l2i
        // 389: invokestatic aimlvmkixobf.a (III)Ljava/lang/String;
        // 38c: invokestatic javax/crypto/Cipher.getInstance (Ljava/lang/String;)Ljavax/crypto/Cipher;
        // 38f: astore 19
        // 391: aload 19
        // 393: bipush 2
        // 394: new javax/crypto/spec/SecretKeySpec
        // 397: dup
        // 398: aload 11
        // 39a: invokevirtual java/lang/String.getBytes ()[B
        // 39d: ldc 1526310150
        // 39f: sipush -23161
        // 3a2: i2c
        // 3a3: iadd
        // 3a4: ldc -1526310150
        // 3a6: sipush -11951
        // 3a9: i2c
        // 3aa: ineg
        // 3ab: iadd
        // 3ac: lload 4
        // 3ae: l2i
        // 3af: invokestatic aimlvmkixobf.a (III)Ljava/lang/String;
        // 3b2: invokespecial javax/crypto/spec/SecretKeySpec.<init> ([BLjava/lang/String;)V
        // 3b5: invokevirtual javax/crypto/Cipher.init (ILjava/security/Key;)V
        // 3b8: aload 19
        // 3ba: aload 17
        // 3bc: invokevirtual javax/crypto/Cipher.doFinal ([B)[B
        // 3bf: astore 20
        // 3c1: aload 12
        // 3c3: bipush 18
        // 3c5: bipush 26
        // 3c7: invokevirtual java/lang/String.substring (II)Ljava/lang/String;
        // 3ca: astore 13
        // 3cc: aload 20
        // 3ce: invokestatic aimlvmkixobf.b ([B)[B
        // 3d1: astore 21
        // 3d3: aload 12
        // 3d5: bipush 19
        // 3d7: bipush 27
        // 3d9: invokevirtual java/lang/String.substring (II)Ljava/lang/String;
        // 3dc: astore 13
        // 3de: new aimlvmkixobf
        // 3e1: dup
        // 3e2: aload 0
        // 3e3: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
        // 3e6: invokevirtual java/lang/Class.getClassLoader ()Ljava/lang/ClassLoader;
        // 3e9: invokespecial aimlvmkixobf.<init> (Ljava/lang/ClassLoader;)V
        // 3ec: aload 21
        // 3ee: invokevirtual aimlvmkixobf.a ([B)Ljava/lang/Class;
        // 3f1: invokevirtual java/lang/Class.newInstance ()Ljava/lang/Object;
        // 3f4: astore 22
        // 3f6: aload 0
        // 3f7: getfield aimlvmkixobf.d Ljavax/servlet/ServletContext;
        // 3fa: aload 14
        // 3fc: aload 22
        // 3fe: invokeinterface javax/servlet/ServletContext.setAttribute (Ljava/lang/String;Ljava/lang/Object;)V 3
        // 403: aload 12
        // 405: bipush 20
        // 407: bipush 28
        // 409: invokevirtual java/lang/String.substring (II)Ljava/lang/String;
        // 40c: astore 13
        // 40e: goto 413
        // 411: astore 17
        // 413: goto 423
        // 416: astore 14
        // 418: aload 12
        // 41a: bipush 21
        // 41c: bipush 29
        // 41e: invokevirtual java/lang/String.substring (II)Ljava/lang/String;
        // 421: astore 13
        // 423: aload 0
        // 424: getfield aimlvmkixobf.c Ljavax/servlet/http/HttpServletResponse;
        // 427: new javax/servlet/http/Cookie
        // 42a: dup
        // 42b: aload 12
        // 42d: bipush 0
        // 42e: bipush 8
        // 430: invokevirtual java/lang/String.substring (II)Ljava/lang/String;
        // 433: aload 13
        // 435: invokespecial javax/servlet/http/Cookie.<init> (Ljava/lang/String;Ljava/lang/String;)V
        // 438: invokeinterface javax/servlet/http/HttpServletResponse.addCookie (Ljavax/servlet/http/Cookie;)V 2
        // 43d: aload 0
        // 43e: getfield aimlvmkixobf.c Ljavax/servlet/http/HttpServletResponse;
        // 441: invokeinterface javax/servlet/http/HttpServletResponse.getWriter ()Ljava/io/PrintWriter; 1
        // 446: invokevirtual java/io/PrintWriter.flush ()V
        // 449: aload 0
        // 44a: getfield aimlvmkixobf.c Ljavax/servlet/http/HttpServletResponse;
        // 44d: invokeinterface javax/servlet/http/HttpServletResponse.getWriter ()Ljava/io/PrintWriter; 1
        // 452: invokevirtual java/io/PrintWriter.close ()V
        // 455: goto 45a
        // 458: astore 14
        // 45a: return

Please fixed the bug,thanks!

l0n3rs commented 1 year ago

@Mr-Aur0ra 建议师傅修一下,反反编译马太难崩了

zml2008 commented 1 year ago

This is a volunteer project where people contribute in their free time. Nagging will not cause the issue to be fixed faster, but we'd be happy to help anytime if you'd like to try out contributing a fix yourself!

Neubulae commented 1 year ago

@Mr-Aur0ra 建议师傅修一下,反反编译马太难崩了

啥?