Merge remote-tracking branch 'BitScorpio/master'
This commit is contained in:
commit
f0761da04a
14 changed files with 331 additions and 336 deletions
|
@ -29,4 +29,5 @@
|
|||
* samczsun
|
||||
* ItzSomebody
|
||||
* DreamSworK
|
||||
* BitScorpio
|
||||
* If I missed you, please feel free to contact me @Konloch or konloch@gmail.com
|
10
README.md
10
README.md
|
@ -3,14 +3,8 @@
|
|||
Bytecode Viewer - a lightweight user friendly Java Bytecode Viewer.
|
||||
|
||||
#### New Features
|
||||
* WAR & JSP Loading
|
||||
* JADX-Core Decompiler
|
||||
* Fixed APK & dex loading
|
||||
* Fixed Java 10+ classfiles
|
||||
* Better visual feedback due to the new busy icon system
|
||||
* Synchronized viewing pane option & quick method selection
|
||||
* Updated most libraries to their 2019 version
|
||||
* Tons of bug fixes and general improvements
|
||||
* Updated ASM library to version 9.1
|
||||
* Added support to Java files compiled using JDK > 13
|
||||
|
||||
|
||||
#### Links
|
||||
|
|
BIN
libs/asm-7.1.jar
BIN
libs/asm-7.1.jar
Binary file not shown.
BIN
libs/asm-9.1.jar
Normal file
BIN
libs/asm-9.1.jar
Normal file
Binary file not shown.
Binary file not shown.
BIN
libs/asm-analysis-9.1.jar
Normal file
BIN
libs/asm-analysis-9.1.jar
Normal file
Binary file not shown.
Binary file not shown.
BIN
libs/asm-commons-9.1.jar
Normal file
BIN
libs/asm-commons-9.1.jar
Normal file
Binary file not shown.
Binary file not shown.
BIN
libs/asm-tree-9.1.jar
Normal file
BIN
libs/asm-tree-9.1.jar
Normal file
Binary file not shown.
Binary file not shown.
BIN
libs/asm-util-9.1.jar
Normal file
BIN
libs/asm-util-9.1.jar
Normal file
Binary file not shown.
|
@ -190,7 +190,7 @@ public class ClassReader {
|
|||
this.b = classFileBuffer;
|
||||
// Check the class' major_version. This field is after the magic and minor_version fields, which
|
||||
// use 4 and 2 bytes respectively.
|
||||
if (checkClassVersion && readShort(classFileOffset + 6) > Opcodes.V13) {
|
||||
if (checkClassVersion && readShort(classFileOffset + 6) > Opcodes.V17) {
|
||||
throw new IllegalArgumentException(
|
||||
"Unsupported class file major version " + readShort(classFileOffset + 6));
|
||||
}
|
||||
|
@ -1334,113 +1334,113 @@ public class ClassReader {
|
|||
final int bytecodeOffset = currentOffset - bytecodeStartOffset;
|
||||
final int opcode = classBuffer[currentOffset] & 0xFF;
|
||||
switch (opcode) {
|
||||
case Constants.NOP:
|
||||
case Constants.ACONST_NULL:
|
||||
case Constants.ICONST_M1:
|
||||
case Constants.ICONST_0:
|
||||
case Constants.ICONST_1:
|
||||
case Constants.ICONST_2:
|
||||
case Constants.ICONST_3:
|
||||
case Constants.ICONST_4:
|
||||
case Constants.ICONST_5:
|
||||
case Constants.LCONST_0:
|
||||
case Constants.LCONST_1:
|
||||
case Constants.FCONST_0:
|
||||
case Constants.FCONST_1:
|
||||
case Constants.FCONST_2:
|
||||
case Constants.DCONST_0:
|
||||
case Constants.DCONST_1:
|
||||
case Constants.IALOAD:
|
||||
case Constants.LALOAD:
|
||||
case Constants.FALOAD:
|
||||
case Constants.DALOAD:
|
||||
case Constants.AALOAD:
|
||||
case Constants.BALOAD:
|
||||
case Constants.CALOAD:
|
||||
case Constants.SALOAD:
|
||||
case Constants.IASTORE:
|
||||
case Constants.LASTORE:
|
||||
case Constants.FASTORE:
|
||||
case Constants.DASTORE:
|
||||
case Constants.AASTORE:
|
||||
case Constants.BASTORE:
|
||||
case Constants.CASTORE:
|
||||
case Constants.SASTORE:
|
||||
case Constants.POP:
|
||||
case Constants.POP2:
|
||||
case Constants.DUP:
|
||||
case Constants.DUP_X1:
|
||||
case Constants.DUP_X2:
|
||||
case Constants.DUP2:
|
||||
case Constants.DUP2_X1:
|
||||
case Constants.DUP2_X2:
|
||||
case Constants.SWAP:
|
||||
case Constants.IADD:
|
||||
case Constants.LADD:
|
||||
case Constants.FADD:
|
||||
case Constants.DADD:
|
||||
case Constants.ISUB:
|
||||
case Constants.LSUB:
|
||||
case Constants.FSUB:
|
||||
case Constants.DSUB:
|
||||
case Constants.IMUL:
|
||||
case Constants.LMUL:
|
||||
case Constants.FMUL:
|
||||
case Constants.DMUL:
|
||||
case Constants.IDIV:
|
||||
case Constants.LDIV:
|
||||
case Constants.FDIV:
|
||||
case Constants.DDIV:
|
||||
case Constants.IREM:
|
||||
case Constants.LREM:
|
||||
case Constants.FREM:
|
||||
case Constants.DREM:
|
||||
case Constants.INEG:
|
||||
case Constants.LNEG:
|
||||
case Constants.FNEG:
|
||||
case Constants.DNEG:
|
||||
case Constants.ISHL:
|
||||
case Constants.LSHL:
|
||||
case Constants.ISHR:
|
||||
case Constants.LSHR:
|
||||
case Constants.IUSHR:
|
||||
case Constants.LUSHR:
|
||||
case Constants.IAND:
|
||||
case Constants.LAND:
|
||||
case Constants.IOR:
|
||||
case Constants.LOR:
|
||||
case Constants.IXOR:
|
||||
case Constants.LXOR:
|
||||
case Constants.I2L:
|
||||
case Constants.I2F:
|
||||
case Constants.I2D:
|
||||
case Constants.L2I:
|
||||
case Constants.L2F:
|
||||
case Constants.L2D:
|
||||
case Constants.F2I:
|
||||
case Constants.F2L:
|
||||
case Constants.F2D:
|
||||
case Constants.D2I:
|
||||
case Constants.D2L:
|
||||
case Constants.D2F:
|
||||
case Constants.I2B:
|
||||
case Constants.I2C:
|
||||
case Constants.I2S:
|
||||
case Constants.LCMP:
|
||||
case Constants.FCMPL:
|
||||
case Constants.FCMPG:
|
||||
case Constants.DCMPL:
|
||||
case Constants.DCMPG:
|
||||
case Constants.IRETURN:
|
||||
case Constants.LRETURN:
|
||||
case Constants.FRETURN:
|
||||
case Constants.DRETURN:
|
||||
case Constants.ARETURN:
|
||||
case Constants.RETURN:
|
||||
case Constants.ARRAYLENGTH:
|
||||
case Constants.ATHROW:
|
||||
case Constants.MONITORENTER:
|
||||
case Constants.MONITOREXIT:
|
||||
case Opcodes.NOP:
|
||||
case Opcodes.ACONST_NULL:
|
||||
case Opcodes.ICONST_M1:
|
||||
case Opcodes.ICONST_0:
|
||||
case Opcodes.ICONST_1:
|
||||
case Opcodes.ICONST_2:
|
||||
case Opcodes.ICONST_3:
|
||||
case Opcodes.ICONST_4:
|
||||
case Opcodes.ICONST_5:
|
||||
case Opcodes.LCONST_0:
|
||||
case Opcodes.LCONST_1:
|
||||
case Opcodes.FCONST_0:
|
||||
case Opcodes.FCONST_1:
|
||||
case Opcodes.FCONST_2:
|
||||
case Opcodes.DCONST_0:
|
||||
case Opcodes.DCONST_1:
|
||||
case Opcodes.IALOAD:
|
||||
case Opcodes.LALOAD:
|
||||
case Opcodes.FALOAD:
|
||||
case Opcodes.DALOAD:
|
||||
case Opcodes.AALOAD:
|
||||
case Opcodes.BALOAD:
|
||||
case Opcodes.CALOAD:
|
||||
case Opcodes.SALOAD:
|
||||
case Opcodes.IASTORE:
|
||||
case Opcodes.LASTORE:
|
||||
case Opcodes.FASTORE:
|
||||
case Opcodes.DASTORE:
|
||||
case Opcodes.AASTORE:
|
||||
case Opcodes.BASTORE:
|
||||
case Opcodes.CASTORE:
|
||||
case Opcodes.SASTORE:
|
||||
case Opcodes.POP:
|
||||
case Opcodes.POP2:
|
||||
case Opcodes.DUP:
|
||||
case Opcodes.DUP_X1:
|
||||
case Opcodes.DUP_X2:
|
||||
case Opcodes.DUP2:
|
||||
case Opcodes.DUP2_X1:
|
||||
case Opcodes.DUP2_X2:
|
||||
case Opcodes.SWAP:
|
||||
case Opcodes.IADD:
|
||||
case Opcodes.LADD:
|
||||
case Opcodes.FADD:
|
||||
case Opcodes.DADD:
|
||||
case Opcodes.ISUB:
|
||||
case Opcodes.LSUB:
|
||||
case Opcodes.FSUB:
|
||||
case Opcodes.DSUB:
|
||||
case Opcodes.IMUL:
|
||||
case Opcodes.LMUL:
|
||||
case Opcodes.FMUL:
|
||||
case Opcodes.DMUL:
|
||||
case Opcodes.IDIV:
|
||||
case Opcodes.LDIV:
|
||||
case Opcodes.FDIV:
|
||||
case Opcodes.DDIV:
|
||||
case Opcodes.IREM:
|
||||
case Opcodes.LREM:
|
||||
case Opcodes.FREM:
|
||||
case Opcodes.DREM:
|
||||
case Opcodes.INEG:
|
||||
case Opcodes.LNEG:
|
||||
case Opcodes.FNEG:
|
||||
case Opcodes.DNEG:
|
||||
case Opcodes.ISHL:
|
||||
case Opcodes.LSHL:
|
||||
case Opcodes.ISHR:
|
||||
case Opcodes.LSHR:
|
||||
case Opcodes.IUSHR:
|
||||
case Opcodes.LUSHR:
|
||||
case Opcodes.IAND:
|
||||
case Opcodes.LAND:
|
||||
case Opcodes.IOR:
|
||||
case Opcodes.LOR:
|
||||
case Opcodes.IXOR:
|
||||
case Opcodes.LXOR:
|
||||
case Opcodes.I2L:
|
||||
case Opcodes.I2F:
|
||||
case Opcodes.I2D:
|
||||
case Opcodes.L2I:
|
||||
case Opcodes.L2F:
|
||||
case Opcodes.L2D:
|
||||
case Opcodes.F2I:
|
||||
case Opcodes.F2L:
|
||||
case Opcodes.F2D:
|
||||
case Opcodes.D2I:
|
||||
case Opcodes.D2L:
|
||||
case Opcodes.D2F:
|
||||
case Opcodes.I2B:
|
||||
case Opcodes.I2C:
|
||||
case Opcodes.I2S:
|
||||
case Opcodes.LCMP:
|
||||
case Opcodes.FCMPL:
|
||||
case Opcodes.FCMPG:
|
||||
case Opcodes.DCMPL:
|
||||
case Opcodes.DCMPG:
|
||||
case Opcodes.IRETURN:
|
||||
case Opcodes.LRETURN:
|
||||
case Opcodes.FRETURN:
|
||||
case Opcodes.DRETURN:
|
||||
case Opcodes.ARETURN:
|
||||
case Opcodes.RETURN:
|
||||
case Opcodes.ARRAYLENGTH:
|
||||
case Opcodes.ATHROW:
|
||||
case Opcodes.MONITORENTER:
|
||||
case Opcodes.MONITOREXIT:
|
||||
case Constants.ILOAD_0:
|
||||
case Constants.ILOAD_1:
|
||||
case Constants.ILOAD_2:
|
||||
|
@ -1483,24 +1483,24 @@ public class ClassReader {
|
|||
case Constants.ASTORE_3:
|
||||
currentOffset += 1;
|
||||
break;
|
||||
case Constants.IFEQ:
|
||||
case Constants.IFNE:
|
||||
case Constants.IFLT:
|
||||
case Constants.IFGE:
|
||||
case Constants.IFGT:
|
||||
case Constants.IFLE:
|
||||
case Constants.IF_ICMPEQ:
|
||||
case Constants.IF_ICMPNE:
|
||||
case Constants.IF_ICMPLT:
|
||||
case Constants.IF_ICMPGE:
|
||||
case Constants.IF_ICMPGT:
|
||||
case Constants.IF_ICMPLE:
|
||||
case Constants.IF_ACMPEQ:
|
||||
case Constants.IF_ACMPNE:
|
||||
case Constants.GOTO:
|
||||
case Constants.JSR:
|
||||
case Constants.IFNULL:
|
||||
case Constants.IFNONNULL:
|
||||
case Opcodes.IFEQ:
|
||||
case Opcodes.IFNE:
|
||||
case Opcodes.IFLT:
|
||||
case Opcodes.IFGE:
|
||||
case Opcodes.IFGT:
|
||||
case Opcodes.IFLE:
|
||||
case Opcodes.IF_ICMPEQ:
|
||||
case Opcodes.IF_ICMPNE:
|
||||
case Opcodes.IF_ICMPLT:
|
||||
case Opcodes.IF_ICMPGE:
|
||||
case Opcodes.IF_ICMPGT:
|
||||
case Opcodes.IF_ICMPLE:
|
||||
case Opcodes.IF_ACMPEQ:
|
||||
case Opcodes.IF_ACMPNE:
|
||||
case Opcodes.GOTO:
|
||||
case Opcodes.JSR:
|
||||
case Opcodes.IFNULL:
|
||||
case Opcodes.IFNONNULL:
|
||||
createLabel(bytecodeOffset + readShort(currentOffset + 1), labels);
|
||||
currentOffset += 3;
|
||||
break;
|
||||
|
@ -1533,27 +1533,27 @@ public class ClassReader {
|
|||
break;
|
||||
case Constants.WIDE:
|
||||
switch (classBuffer[currentOffset + 1] & 0xFF) {
|
||||
case Constants.ILOAD:
|
||||
case Constants.FLOAD:
|
||||
case Constants.ALOAD:
|
||||
case Constants.LLOAD:
|
||||
case Constants.DLOAD:
|
||||
case Constants.ISTORE:
|
||||
case Constants.FSTORE:
|
||||
case Constants.ASTORE:
|
||||
case Constants.LSTORE:
|
||||
case Constants.DSTORE:
|
||||
case Constants.RET:
|
||||
case Opcodes.ILOAD:
|
||||
case Opcodes.FLOAD:
|
||||
case Opcodes.ALOAD:
|
||||
case Opcodes.LLOAD:
|
||||
case Opcodes.DLOAD:
|
||||
case Opcodes.ISTORE:
|
||||
case Opcodes.FSTORE:
|
||||
case Opcodes.ASTORE:
|
||||
case Opcodes.LSTORE:
|
||||
case Opcodes.DSTORE:
|
||||
case Opcodes.RET:
|
||||
currentOffset += 4;
|
||||
break;
|
||||
case Constants.IINC:
|
||||
case Opcodes.IINC:
|
||||
currentOffset += 6;
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
break;
|
||||
case Constants.TABLESWITCH:
|
||||
case Opcodes.TABLESWITCH:
|
||||
// Skip 0 to 3 padding bytes.
|
||||
currentOffset += 4 - (bytecodeOffset & 3);
|
||||
// Read the default label and the number of table entries.
|
||||
|
@ -1566,7 +1566,7 @@ public class ClassReader {
|
|||
currentOffset += 4;
|
||||
}
|
||||
break;
|
||||
case Constants.LOOKUPSWITCH:
|
||||
case Opcodes.LOOKUPSWITCH:
|
||||
// Skip 0 to 3 padding bytes.
|
||||
currentOffset += 4 - (bytecodeOffset & 3);
|
||||
// Read the default label and the number of switch cases.
|
||||
|
@ -1579,44 +1579,44 @@ public class ClassReader {
|
|||
currentOffset += 8;
|
||||
}
|
||||
break;
|
||||
case Constants.ILOAD:
|
||||
case Constants.LLOAD:
|
||||
case Constants.FLOAD:
|
||||
case Constants.DLOAD:
|
||||
case Constants.ALOAD:
|
||||
case Constants.ISTORE:
|
||||
case Constants.LSTORE:
|
||||
case Constants.FSTORE:
|
||||
case Constants.DSTORE:
|
||||
case Constants.ASTORE:
|
||||
case Constants.RET:
|
||||
case Constants.BIPUSH:
|
||||
case Constants.NEWARRAY:
|
||||
case Constants.LDC:
|
||||
case Opcodes.ILOAD:
|
||||
case Opcodes.LLOAD:
|
||||
case Opcodes.FLOAD:
|
||||
case Opcodes.DLOAD:
|
||||
case Opcodes.ALOAD:
|
||||
case Opcodes.ISTORE:
|
||||
case Opcodes.LSTORE:
|
||||
case Opcodes.FSTORE:
|
||||
case Opcodes.DSTORE:
|
||||
case Opcodes.ASTORE:
|
||||
case Opcodes.RET:
|
||||
case Opcodes.BIPUSH:
|
||||
case Opcodes.NEWARRAY:
|
||||
case Opcodes.LDC:
|
||||
currentOffset += 2;
|
||||
break;
|
||||
case Constants.SIPUSH:
|
||||
case Opcodes.SIPUSH:
|
||||
case Constants.LDC_W:
|
||||
case Constants.LDC2_W:
|
||||
case Constants.GETSTATIC:
|
||||
case Constants.PUTSTATIC:
|
||||
case Constants.GETFIELD:
|
||||
case Constants.PUTFIELD:
|
||||
case Constants.INVOKEVIRTUAL:
|
||||
case Constants.INVOKESPECIAL:
|
||||
case Constants.INVOKESTATIC:
|
||||
case Constants.NEW:
|
||||
case Constants.ANEWARRAY:
|
||||
case Constants.CHECKCAST:
|
||||
case Constants.INSTANCEOF:
|
||||
case Constants.IINC:
|
||||
case Opcodes.GETSTATIC:
|
||||
case Opcodes.PUTSTATIC:
|
||||
case Opcodes.GETFIELD:
|
||||
case Opcodes.PUTFIELD:
|
||||
case Opcodes.INVOKEVIRTUAL:
|
||||
case Opcodes.INVOKESPECIAL:
|
||||
case Opcodes.INVOKESTATIC:
|
||||
case Opcodes.NEW:
|
||||
case Opcodes.ANEWARRAY:
|
||||
case Opcodes.CHECKCAST:
|
||||
case Opcodes.INSTANCEOF:
|
||||
case Opcodes.IINC:
|
||||
currentOffset += 3;
|
||||
break;
|
||||
case Constants.INVOKEINTERFACE:
|
||||
case Constants.INVOKEDYNAMIC:
|
||||
case Opcodes.INVOKEINTERFACE:
|
||||
case Opcodes.INVOKEDYNAMIC:
|
||||
currentOffset += 5;
|
||||
break;
|
||||
case Constants.MULTIANEWARRAY:
|
||||
case Opcodes.MULTIANEWARRAY:
|
||||
currentOffset += 4;
|
||||
break;
|
||||
default:
|
||||
|
@ -1883,113 +1883,113 @@ public class ClassReader {
|
|||
// Visit the instruction at this bytecode offset.
|
||||
int opcode = classBuffer[currentOffset] & 0xFF;
|
||||
switch (opcode) {
|
||||
case Constants.NOP:
|
||||
case Constants.ACONST_NULL:
|
||||
case Constants.ICONST_M1:
|
||||
case Constants.ICONST_0:
|
||||
case Constants.ICONST_1:
|
||||
case Constants.ICONST_2:
|
||||
case Constants.ICONST_3:
|
||||
case Constants.ICONST_4:
|
||||
case Constants.ICONST_5:
|
||||
case Constants.LCONST_0:
|
||||
case Constants.LCONST_1:
|
||||
case Constants.FCONST_0:
|
||||
case Constants.FCONST_1:
|
||||
case Constants.FCONST_2:
|
||||
case Constants.DCONST_0:
|
||||
case Constants.DCONST_1:
|
||||
case Constants.IALOAD:
|
||||
case Constants.LALOAD:
|
||||
case Constants.FALOAD:
|
||||
case Constants.DALOAD:
|
||||
case Constants.AALOAD:
|
||||
case Constants.BALOAD:
|
||||
case Constants.CALOAD:
|
||||
case Constants.SALOAD:
|
||||
case Constants.IASTORE:
|
||||
case Constants.LASTORE:
|
||||
case Constants.FASTORE:
|
||||
case Constants.DASTORE:
|
||||
case Constants.AASTORE:
|
||||
case Constants.BASTORE:
|
||||
case Constants.CASTORE:
|
||||
case Constants.SASTORE:
|
||||
case Constants.POP:
|
||||
case Constants.POP2:
|
||||
case Constants.DUP:
|
||||
case Constants.DUP_X1:
|
||||
case Constants.DUP_X2:
|
||||
case Constants.DUP2:
|
||||
case Constants.DUP2_X1:
|
||||
case Constants.DUP2_X2:
|
||||
case Constants.SWAP:
|
||||
case Constants.IADD:
|
||||
case Constants.LADD:
|
||||
case Constants.FADD:
|
||||
case Constants.DADD:
|
||||
case Constants.ISUB:
|
||||
case Constants.LSUB:
|
||||
case Constants.FSUB:
|
||||
case Constants.DSUB:
|
||||
case Constants.IMUL:
|
||||
case Constants.LMUL:
|
||||
case Constants.FMUL:
|
||||
case Constants.DMUL:
|
||||
case Constants.IDIV:
|
||||
case Constants.LDIV:
|
||||
case Constants.FDIV:
|
||||
case Constants.DDIV:
|
||||
case Constants.IREM:
|
||||
case Constants.LREM:
|
||||
case Constants.FREM:
|
||||
case Constants.DREM:
|
||||
case Constants.INEG:
|
||||
case Constants.LNEG:
|
||||
case Constants.FNEG:
|
||||
case Constants.DNEG:
|
||||
case Constants.ISHL:
|
||||
case Constants.LSHL:
|
||||
case Constants.ISHR:
|
||||
case Constants.LSHR:
|
||||
case Constants.IUSHR:
|
||||
case Constants.LUSHR:
|
||||
case Constants.IAND:
|
||||
case Constants.LAND:
|
||||
case Constants.IOR:
|
||||
case Constants.LOR:
|
||||
case Constants.IXOR:
|
||||
case Constants.LXOR:
|
||||
case Constants.I2L:
|
||||
case Constants.I2F:
|
||||
case Constants.I2D:
|
||||
case Constants.L2I:
|
||||
case Constants.L2F:
|
||||
case Constants.L2D:
|
||||
case Constants.F2I:
|
||||
case Constants.F2L:
|
||||
case Constants.F2D:
|
||||
case Constants.D2I:
|
||||
case Constants.D2L:
|
||||
case Constants.D2F:
|
||||
case Constants.I2B:
|
||||
case Constants.I2C:
|
||||
case Constants.I2S:
|
||||
case Constants.LCMP:
|
||||
case Constants.FCMPL:
|
||||
case Constants.FCMPG:
|
||||
case Constants.DCMPL:
|
||||
case Constants.DCMPG:
|
||||
case Constants.IRETURN:
|
||||
case Constants.LRETURN:
|
||||
case Constants.FRETURN:
|
||||
case Constants.DRETURN:
|
||||
case Constants.ARETURN:
|
||||
case Constants.RETURN:
|
||||
case Constants.ARRAYLENGTH:
|
||||
case Constants.ATHROW:
|
||||
case Constants.MONITORENTER:
|
||||
case Constants.MONITOREXIT:
|
||||
case Opcodes.NOP:
|
||||
case Opcodes.ACONST_NULL:
|
||||
case Opcodes.ICONST_M1:
|
||||
case Opcodes.ICONST_0:
|
||||
case Opcodes.ICONST_1:
|
||||
case Opcodes.ICONST_2:
|
||||
case Opcodes.ICONST_3:
|
||||
case Opcodes.ICONST_4:
|
||||
case Opcodes.ICONST_5:
|
||||
case Opcodes.LCONST_0:
|
||||
case Opcodes.LCONST_1:
|
||||
case Opcodes.FCONST_0:
|
||||
case Opcodes.FCONST_1:
|
||||
case Opcodes.FCONST_2:
|
||||
case Opcodes.DCONST_0:
|
||||
case Opcodes.DCONST_1:
|
||||
case Opcodes.IALOAD:
|
||||
case Opcodes.LALOAD:
|
||||
case Opcodes.FALOAD:
|
||||
case Opcodes.DALOAD:
|
||||
case Opcodes.AALOAD:
|
||||
case Opcodes.BALOAD:
|
||||
case Opcodes.CALOAD:
|
||||
case Opcodes.SALOAD:
|
||||
case Opcodes.IASTORE:
|
||||
case Opcodes.LASTORE:
|
||||
case Opcodes.FASTORE:
|
||||
case Opcodes.DASTORE:
|
||||
case Opcodes.AASTORE:
|
||||
case Opcodes.BASTORE:
|
||||
case Opcodes.CASTORE:
|
||||
case Opcodes.SASTORE:
|
||||
case Opcodes.POP:
|
||||
case Opcodes.POP2:
|
||||
case Opcodes.DUP:
|
||||
case Opcodes.DUP_X1:
|
||||
case Opcodes.DUP_X2:
|
||||
case Opcodes.DUP2:
|
||||
case Opcodes.DUP2_X1:
|
||||
case Opcodes.DUP2_X2:
|
||||
case Opcodes.SWAP:
|
||||
case Opcodes.IADD:
|
||||
case Opcodes.LADD:
|
||||
case Opcodes.FADD:
|
||||
case Opcodes.DADD:
|
||||
case Opcodes.ISUB:
|
||||
case Opcodes.LSUB:
|
||||
case Opcodes.FSUB:
|
||||
case Opcodes.DSUB:
|
||||
case Opcodes.IMUL:
|
||||
case Opcodes.LMUL:
|
||||
case Opcodes.FMUL:
|
||||
case Opcodes.DMUL:
|
||||
case Opcodes.IDIV:
|
||||
case Opcodes.LDIV:
|
||||
case Opcodes.FDIV:
|
||||
case Opcodes.DDIV:
|
||||
case Opcodes.IREM:
|
||||
case Opcodes.LREM:
|
||||
case Opcodes.FREM:
|
||||
case Opcodes.DREM:
|
||||
case Opcodes.INEG:
|
||||
case Opcodes.LNEG:
|
||||
case Opcodes.FNEG:
|
||||
case Opcodes.DNEG:
|
||||
case Opcodes.ISHL:
|
||||
case Opcodes.LSHL:
|
||||
case Opcodes.ISHR:
|
||||
case Opcodes.LSHR:
|
||||
case Opcodes.IUSHR:
|
||||
case Opcodes.LUSHR:
|
||||
case Opcodes.IAND:
|
||||
case Opcodes.LAND:
|
||||
case Opcodes.IOR:
|
||||
case Opcodes.LOR:
|
||||
case Opcodes.IXOR:
|
||||
case Opcodes.LXOR:
|
||||
case Opcodes.I2L:
|
||||
case Opcodes.I2F:
|
||||
case Opcodes.I2D:
|
||||
case Opcodes.L2I:
|
||||
case Opcodes.L2F:
|
||||
case Opcodes.L2D:
|
||||
case Opcodes.F2I:
|
||||
case Opcodes.F2L:
|
||||
case Opcodes.F2D:
|
||||
case Opcodes.D2I:
|
||||
case Opcodes.D2L:
|
||||
case Opcodes.D2F:
|
||||
case Opcodes.I2B:
|
||||
case Opcodes.I2C:
|
||||
case Opcodes.I2S:
|
||||
case Opcodes.LCMP:
|
||||
case Opcodes.FCMPL:
|
||||
case Opcodes.FCMPG:
|
||||
case Opcodes.DCMPL:
|
||||
case Opcodes.DCMPG:
|
||||
case Opcodes.IRETURN:
|
||||
case Opcodes.LRETURN:
|
||||
case Opcodes.FRETURN:
|
||||
case Opcodes.DRETURN:
|
||||
case Opcodes.ARETURN:
|
||||
case Opcodes.RETURN:
|
||||
case Opcodes.ARRAYLENGTH:
|
||||
case Opcodes.ATHROW:
|
||||
case Opcodes.MONITORENTER:
|
||||
case Opcodes.MONITOREXIT:
|
||||
methodVisitor.visitInsn(opcode);
|
||||
currentOffset += 1;
|
||||
break;
|
||||
|
@ -2041,24 +2041,24 @@ public class ClassReader {
|
|||
methodVisitor.visitVarInsn(Opcodes.ISTORE + (opcode >> 2), opcode & 0x3);
|
||||
currentOffset += 1;
|
||||
break;
|
||||
case Constants.IFEQ:
|
||||
case Constants.IFNE:
|
||||
case Constants.IFLT:
|
||||
case Constants.IFGE:
|
||||
case Constants.IFGT:
|
||||
case Constants.IFLE:
|
||||
case Constants.IF_ICMPEQ:
|
||||
case Constants.IF_ICMPNE:
|
||||
case Constants.IF_ICMPLT:
|
||||
case Constants.IF_ICMPGE:
|
||||
case Constants.IF_ICMPGT:
|
||||
case Constants.IF_ICMPLE:
|
||||
case Constants.IF_ACMPEQ:
|
||||
case Constants.IF_ACMPNE:
|
||||
case Constants.GOTO:
|
||||
case Constants.JSR:
|
||||
case Constants.IFNULL:
|
||||
case Constants.IFNONNULL:
|
||||
case Opcodes.IFEQ:
|
||||
case Opcodes.IFNE:
|
||||
case Opcodes.IFLT:
|
||||
case Opcodes.IFGE:
|
||||
case Opcodes.IFGT:
|
||||
case Opcodes.IFLE:
|
||||
case Opcodes.IF_ICMPEQ:
|
||||
case Opcodes.IF_ICMPNE:
|
||||
case Opcodes.IF_ICMPLT:
|
||||
case Opcodes.IF_ICMPGE:
|
||||
case Opcodes.IF_ICMPGT:
|
||||
case Opcodes.IF_ICMPLE:
|
||||
case Opcodes.IF_ACMPEQ:
|
||||
case Opcodes.IF_ACMPNE:
|
||||
case Opcodes.GOTO:
|
||||
case Opcodes.JSR:
|
||||
case Opcodes.IFNULL:
|
||||
case Opcodes.IFNONNULL:
|
||||
methodVisitor.visitJumpInsn(
|
||||
opcode, labels[currentBytecodeOffset + readShort(currentOffset + 1)]);
|
||||
currentOffset += 3;
|
||||
|
@ -2139,7 +2139,7 @@ public class ClassReader {
|
|||
currentOffset += 4;
|
||||
}
|
||||
break;
|
||||
case Constants.TABLESWITCH:
|
||||
case Opcodes.TABLESWITCH:
|
||||
{
|
||||
// Skip 0 to 3 padding bytes.
|
||||
currentOffset += 4 - (currentBytecodeOffset & 3);
|
||||
|
@ -2156,7 +2156,7 @@ public class ClassReader {
|
|||
methodVisitor.visitTableSwitchInsn(low, high, defaultLabel, table);
|
||||
break;
|
||||
}
|
||||
case Constants.LOOKUPSWITCH:
|
||||
case Opcodes.LOOKUPSWITCH:
|
||||
{
|
||||
// Skip 0 to 3 padding bytes.
|
||||
currentOffset += 4 - (currentBytecodeOffset & 3);
|
||||
|
@ -2174,30 +2174,30 @@ public class ClassReader {
|
|||
methodVisitor.visitLookupSwitchInsn(defaultLabel, keys, values);
|
||||
break;
|
||||
}
|
||||
case Constants.ILOAD:
|
||||
case Constants.LLOAD:
|
||||
case Constants.FLOAD:
|
||||
case Constants.DLOAD:
|
||||
case Constants.ALOAD:
|
||||
case Constants.ISTORE:
|
||||
case Constants.LSTORE:
|
||||
case Constants.FSTORE:
|
||||
case Constants.DSTORE:
|
||||
case Constants.ASTORE:
|
||||
case Constants.RET:
|
||||
case Opcodes.ILOAD:
|
||||
case Opcodes.LLOAD:
|
||||
case Opcodes.FLOAD:
|
||||
case Opcodes.DLOAD:
|
||||
case Opcodes.ALOAD:
|
||||
case Opcodes.ISTORE:
|
||||
case Opcodes.LSTORE:
|
||||
case Opcodes.FSTORE:
|
||||
case Opcodes.DSTORE:
|
||||
case Opcodes.ASTORE:
|
||||
case Opcodes.RET:
|
||||
methodVisitor.visitVarInsn(opcode, classBuffer[currentOffset + 1] & 0xFF);
|
||||
currentOffset += 2;
|
||||
break;
|
||||
case Constants.BIPUSH:
|
||||
case Constants.NEWARRAY:
|
||||
case Opcodes.BIPUSH:
|
||||
case Opcodes.NEWARRAY:
|
||||
methodVisitor.visitIntInsn(opcode, classBuffer[currentOffset + 1]);
|
||||
currentOffset += 2;
|
||||
break;
|
||||
case Constants.SIPUSH:
|
||||
case Opcodes.SIPUSH:
|
||||
methodVisitor.visitIntInsn(opcode, readShort(currentOffset + 1));
|
||||
currentOffset += 3;
|
||||
break;
|
||||
case Constants.LDC:
|
||||
case Opcodes.LDC:
|
||||
methodVisitor.visitLdcInsn(readConst(classBuffer[currentOffset + 1] & 0xFF, charBuffer));
|
||||
currentOffset += 2;
|
||||
break;
|
||||
|
@ -2206,14 +2206,14 @@ public class ClassReader {
|
|||
methodVisitor.visitLdcInsn(readConst(readUnsignedShort(currentOffset + 1), charBuffer));
|
||||
currentOffset += 3;
|
||||
break;
|
||||
case Constants.GETSTATIC:
|
||||
case Constants.PUTSTATIC:
|
||||
case Constants.GETFIELD:
|
||||
case Constants.PUTFIELD:
|
||||
case Constants.INVOKEVIRTUAL:
|
||||
case Constants.INVOKESPECIAL:
|
||||
case Constants.INVOKESTATIC:
|
||||
case Constants.INVOKEINTERFACE:
|
||||
case Opcodes.GETSTATIC:
|
||||
case Opcodes.PUTSTATIC:
|
||||
case Opcodes.GETFIELD:
|
||||
case Opcodes.PUTFIELD:
|
||||
case Opcodes.INVOKEVIRTUAL:
|
||||
case Opcodes.INVOKESPECIAL:
|
||||
case Opcodes.INVOKESTATIC:
|
||||
case Opcodes.INVOKEINTERFACE:
|
||||
{
|
||||
int cpInfoOffset = cpInfoOffsets[readUnsignedShort(currentOffset + 1)];
|
||||
int nameAndTypeCpInfoOffset = cpInfoOffsets[readUnsignedShort(cpInfoOffset + 2)];
|
||||
|
@ -2234,7 +2234,7 @@ public class ClassReader {
|
|||
}
|
||||
break;
|
||||
}
|
||||
case Constants.INVOKEDYNAMIC:
|
||||
case Opcodes.INVOKEDYNAMIC:
|
||||
{
|
||||
int cpInfoOffset = cpInfoOffsets[readUnsignedShort(currentOffset + 1)];
|
||||
int nameAndTypeCpInfoOffset = cpInfoOffsets[readUnsignedShort(cpInfoOffset + 2)];
|
||||
|
@ -2256,19 +2256,19 @@ public class ClassReader {
|
|||
currentOffset += 5;
|
||||
break;
|
||||
}
|
||||
case Constants.NEW:
|
||||
case Constants.ANEWARRAY:
|
||||
case Constants.CHECKCAST:
|
||||
case Constants.INSTANCEOF:
|
||||
case Opcodes.NEW:
|
||||
case Opcodes.ANEWARRAY:
|
||||
case Opcodes.CHECKCAST:
|
||||
case Opcodes.INSTANCEOF:
|
||||
methodVisitor.visitTypeInsn(opcode, readClass(currentOffset + 1, charBuffer));
|
||||
currentOffset += 3;
|
||||
break;
|
||||
case Constants.IINC:
|
||||
case Opcodes.IINC:
|
||||
methodVisitor.visitIincInsn(
|
||||
classBuffer[currentOffset + 1] & 0xFF, classBuffer[currentOffset + 2]);
|
||||
currentOffset += 3;
|
||||
break;
|
||||
case Constants.MULTIANEWARRAY:
|
||||
case Opcodes.MULTIANEWARRAY:
|
||||
methodVisitor.visitMultiANewArrayInsn(
|
||||
readClass(currentOffset + 1, charBuffer), classBuffer[currentOffset + 3] & 0xFF);
|
||||
currentOffset += 4;
|
||||
|
|
|
@ -114,7 +114,7 @@ import the.bytecode.club.bytecodeviewer.util.*;
|
|||
public class BytecodeViewer
|
||||
{
|
||||
/*per version*/
|
||||
public static final String VERSION = "2.9.22";
|
||||
public static final String VERSION = "2.9.23";
|
||||
public static String krakatauVersion = "12";
|
||||
public static String enjarifyVersion = "4";
|
||||
public static final boolean BLOCK_TAB_MENU = true;
|
||||
|
|
Loading…
Reference in a new issue