mirror of
https://github.com/SuspiciousActivity/ByteEdit.git
synced 2026-08-13 17:56:17 +00:00
Changed Access View to HEX for innerclasses
This commit is contained in:
1 parent
add4fd39d4
commit
7330fdcafd
3 files changed
+77
-50
No files matched your search
@@ -3,6 +3,7 @@ package me.ByteEdit.main;
|
|||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.io.StringReader;
|
import java.io.StringReader;
|
||||||
import java.lang.reflect.Constructor;
|
import java.lang.reflect.Constructor;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -70,7 +71,7 @@ public class Assembler {
|
|||||||
} else {
|
} else {
|
||||||
String split[] = s.split(" ");
|
String split[] = s.split(" ");
|
||||||
clazz.innerClasses.add(new InnerClassNode(split[1], split[2].equals("null") ? null : split[2],
|
clazz.innerClasses.add(new InnerClassNode(split[1], split[2].equals("null") ? null : split[2],
|
||||||
split[3].equals("null") ? null : split[3], Integer.parseInt(split[4])));
|
split[3].equals("null") ? null : split[3], Integer.parseInt(split[4].substring(2), 16)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -345,53 +346,57 @@ public class Assembler {
|
|||||||
int access = 0;
|
int access = 0;
|
||||||
if (split.length > 2) {
|
if (split.length > 2) {
|
||||||
String cons = consolidateStrings(split, 0, split.length - 2);
|
String cons = consolidateStrings(split, 0, split.length - 2);
|
||||||
if (cons.contains("public")) {
|
if (cons.startsWith("0x")) {
|
||||||
access ^= ClassUtil.ACC_PUBLIC;
|
access = Integer.parseInt(cons.substring(2), 16);
|
||||||
}
|
} else {
|
||||||
if (cons.contains("private")) {
|
if (cons.contains("public")) {
|
||||||
access ^= ClassUtil.ACC_PRIVATE;
|
access ^= ClassUtil.ACC_PUBLIC;
|
||||||
}
|
}
|
||||||
if (cons.contains("protected")) {
|
if (cons.contains("private")) {
|
||||||
access ^= ClassUtil.ACC_PROTECTED;
|
access ^= ClassUtil.ACC_PRIVATE;
|
||||||
}
|
}
|
||||||
if (cons.contains("static")) {
|
if (cons.contains("protected")) {
|
||||||
access ^= ClassUtil.ACC_STATIC;
|
access ^= ClassUtil.ACC_PROTECTED;
|
||||||
}
|
}
|
||||||
if (cons.contains("final")) {
|
if (cons.contains("static")) {
|
||||||
access ^= ClassUtil.ACC_FINAL;
|
access ^= ClassUtil.ACC_STATIC;
|
||||||
}
|
}
|
||||||
if (cons.contains("synchronized")) {
|
if (cons.contains("final")) {
|
||||||
access ^= ClassUtil.ACC_SYNCHRONIZED;
|
access ^= ClassUtil.ACC_FINAL;
|
||||||
}
|
}
|
||||||
if (cons.contains("bridge")) {
|
if (cons.contains("synchronized")) {
|
||||||
access ^= ClassUtil.ACC_BRIDGE;
|
access ^= ClassUtil.ACC_SYNCHRONIZED;
|
||||||
}
|
}
|
||||||
if (cons.contains("varargs")) {
|
if (cons.contains("bridge")) {
|
||||||
access ^= ClassUtil.ACC_VARARGS;
|
access ^= ClassUtil.ACC_BRIDGE;
|
||||||
}
|
}
|
||||||
if (cons.contains("native")) {
|
if (cons.contains("varargs")) {
|
||||||
access ^= ClassUtil.ACC_NATIVE;
|
access ^= ClassUtil.ACC_VARARGS;
|
||||||
}
|
}
|
||||||
if (cons.contains("interface")) {
|
if (cons.contains("native")) {
|
||||||
access ^= ClassUtil.ACC_INTERFACE;
|
access ^= ClassUtil.ACC_NATIVE;
|
||||||
}
|
}
|
||||||
if (cons.contains("abstract")) {
|
if (cons.contains("interface")) {
|
||||||
access ^= ClassUtil.ACC_ABSTRACT;
|
access ^= ClassUtil.ACC_INTERFACE;
|
||||||
}
|
}
|
||||||
if (cons.contains("strictfp")) {
|
if (cons.contains("abstract")) {
|
||||||
access ^= ClassUtil.ACC_STRICTFP;
|
access ^= ClassUtil.ACC_ABSTRACT;
|
||||||
}
|
}
|
||||||
if (cons.contains("synthetic")) {
|
if (cons.contains("strictfp")) {
|
||||||
access ^= ClassUtil.ACC_SYNTHETIC;
|
access ^= ClassUtil.ACC_STRICTFP;
|
||||||
}
|
}
|
||||||
if (cons.contains("annotation")) {
|
if (cons.contains("synthetic")) {
|
||||||
access ^= ClassUtil.ACC_ANNOTATION;
|
access ^= ClassUtil.ACC_SYNTHETIC;
|
||||||
}
|
}
|
||||||
if (cons.contains("enum")) {
|
if (cons.contains("annotation")) {
|
||||||
access ^= ClassUtil.ACC_ENUM;
|
access ^= ClassUtil.ACC_ANNOTATION;
|
||||||
}
|
}
|
||||||
if (cons.contains("mandated")) {
|
if (cons.contains("enum")) {
|
||||||
access ^= ClassUtil.ACC_MANDATED;
|
access ^= ClassUtil.ACC_ENUM;
|
||||||
|
}
|
||||||
|
if (cons.contains("mandated")) {
|
||||||
|
access ^= ClassUtil.ACC_MANDATED;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
node.access = access;
|
node.access = access;
|
||||||
|
|||||||
@@ -54,56 +54,77 @@ public class ClassUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static String getAccessFlagsFull(int access) {
|
public static String getAccessFlagsFull(int access) {
|
||||||
|
int acc = 0;
|
||||||
String s = "";
|
String s = "";
|
||||||
if ((ACC_PUBLIC & access) != 0) {
|
if ((ACC_PUBLIC & access) != 0) {
|
||||||
s += "public ";
|
s += "public ";
|
||||||
|
acc ^= ACC_PUBLIC;
|
||||||
}
|
}
|
||||||
if ((ACC_PRIVATE & access) != 0) {
|
if ((ACC_PRIVATE & access) != 0) {
|
||||||
s += "private ";
|
s += "private ";
|
||||||
|
acc ^= ACC_PRIVATE;
|
||||||
}
|
}
|
||||||
if ((ACC_PROTECTED & access) != 0) {
|
if ((ACC_PROTECTED & access) != 0) {
|
||||||
s += "protected ";
|
s += "protected ";
|
||||||
|
acc ^= ACC_PROTECTED;
|
||||||
}
|
}
|
||||||
if ((ACC_STATIC & access) != 0) {
|
if ((ACC_STATIC & access) != 0) {
|
||||||
s += "static ";
|
s += "static ";
|
||||||
|
acc ^= ACC_STATIC;
|
||||||
}
|
}
|
||||||
if ((ACC_FINAL & access) != 0) {
|
if ((ACC_FINAL & access) != 0) {
|
||||||
s += "final ";
|
s += "final ";
|
||||||
|
acc ^= ACC_FINAL;
|
||||||
}
|
}
|
||||||
if ((ACC_SYNCHRONIZED & access) != 0) {
|
if ((ACC_SYNCHRONIZED & access) != 0) {
|
||||||
s += "synchronized ";
|
s += "synchronized ";
|
||||||
|
acc ^= ACC_SYNCHRONIZED;
|
||||||
}
|
}
|
||||||
if ((ACC_VARARGS & access) != 0) {
|
if ((ACC_VARARGS & access) != 0) {
|
||||||
s += "varargs ";
|
s += "varargs ";
|
||||||
|
acc ^= ACC_VARARGS;
|
||||||
}
|
}
|
||||||
if ((ACC_NATIVE & access) != 0) {
|
if ((ACC_NATIVE & access) != 0) {
|
||||||
s += "native ";
|
s += "native ";
|
||||||
|
acc ^= ACC_NATIVE;
|
||||||
}
|
}
|
||||||
if ((ACC_INTERFACE & access) != 0) {
|
if ((ACC_INTERFACE & access) != 0) {
|
||||||
s += "interface ";
|
s += "interface ";
|
||||||
|
acc ^= ACC_INTERFACE;
|
||||||
}
|
}
|
||||||
if ((ACC_ABSTRACT & access) != 0) {
|
if ((ACC_ABSTRACT & access) != 0) {
|
||||||
s += "abstract ";
|
s += "abstract ";
|
||||||
|
acc ^= ACC_ABSTRACT;
|
||||||
}
|
}
|
||||||
if ((ACC_STRICTFP & access) != 0) {
|
if ((ACC_STRICTFP & access) != 0) {
|
||||||
s += "strictfp ";
|
s += "strictfp ";
|
||||||
|
acc ^= ACC_STRICTFP;
|
||||||
}
|
}
|
||||||
if ((ACC_SYNTHETIC & access) != 0) {
|
if ((ACC_SYNTHETIC & access) != 0) {
|
||||||
s += "synthetic ";
|
s += "synthetic ";
|
||||||
|
acc ^= ACC_SYNTHETIC;
|
||||||
}
|
}
|
||||||
if ((ACC_BRIDGE & access) != 0) {
|
if ((ACC_BRIDGE & access) != 0) {
|
||||||
s += "bridge ";
|
s += "bridge ";
|
||||||
|
acc ^= ACC_BRIDGE;
|
||||||
}
|
}
|
||||||
if ((ACC_ANNOTATION & access) != 0) {
|
if ((ACC_ANNOTATION & access) != 0) {
|
||||||
s += "annotation ";
|
s += "annotation ";
|
||||||
|
acc ^= ACC_ANNOTATION;
|
||||||
}
|
}
|
||||||
if ((ACC_ENUM & access) != 0) {
|
if ((ACC_ENUM & access) != 0) {
|
||||||
s += "enum ";
|
s += "enum ";
|
||||||
|
acc ^= ACC_ENUM;
|
||||||
}
|
}
|
||||||
if ((ACC_MANDATED & access) != 0) {
|
if ((ACC_MANDATED & access) != 0) {
|
||||||
s += "mandated ";
|
s += "mandated ";
|
||||||
|
acc ^= ACC_MANDATED;
|
||||||
|
}
|
||||||
|
if (acc == access) {
|
||||||
|
return s;
|
||||||
|
} else {
|
||||||
|
return "0x" + Integer.toHexString(access) + " ";
|
||||||
}
|
}
|
||||||
return s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -104,7 +104,8 @@ public class Disassembler {
|
|||||||
s += "// #InnerClasses:\n";
|
s += "// #InnerClasses:\n";
|
||||||
if (classNode.innerClasses != null) {
|
if (classNode.innerClasses != null) {
|
||||||
for (InnerClassNode icn : classNode.innerClasses) {
|
for (InnerClassNode icn : classNode.innerClasses) {
|
||||||
s += "// " + icn.name + " " + icn.outerName + " " + icn.innerName + " " + icn.access + "\n";
|
s += "// " + icn.name + " " + icn.outerName + " " + icn.innerName + " 0x"
|
||||||
|
+ Integer.toHexString(icn.access) + "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
s += ClassUtil.getAccessFlagsClass(classNode.access) + classNode.name + " ";
|
s += ClassUtil.getAccessFlagsClass(classNode.access) + classNode.name + " ";
|
||||||
|
|||||||
Reference in new issue
Block a user