From 30c6a7a69d4b0653cd4af21f0cbf3ee74098862b Mon Sep 17 00:00:00 2001 From: SuspiciousActivity <38253929+SuspiciousActivity@users.noreply.github.com> Date: Fri, 23 Nov 2018 14:32:39 +0100 Subject: [PATCH] Fixed variable/method names with / in them --- src/me/ByteEdit/edit/Assembler.java | 9 ++++----- src/me/ByteEdit/edit/Disassembler.java | 16 +++++++++------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/me/ByteEdit/edit/Assembler.java b/src/me/ByteEdit/edit/Assembler.java index 7b3aea2..d656c7d 100644 --- a/src/me/ByteEdit/edit/Assembler.java +++ b/src/me/ByteEdit/edit/Assembler.java @@ -323,7 +323,6 @@ public class Assembler { .add(new TryCatchBlockNode(_start, _end, _handler, sp[0].equals("null") ? null : UnicodeUtils.unescape(sp[0]))); } clazz.methods.add(node); - // signature = null; } else if (!s.startsWith("\t")) { s = s.substring(0, s.length() - 2); if (s.contains(" throws ")) { @@ -460,7 +459,7 @@ public class Assembler { } else if (!rofl.startsWith("(")) { int index = rofl.indexOf(";"); list.add(new String[] { rofl.substring(0, index) + ";", rofl.substring(index).substring(2) }); - } else { // other type with casting + } else { list.add(ClassUtil.getCastedValue(rofl.split(" ")[1], rofl.split("\\) ")[0].substring(1))); } } @@ -473,7 +472,7 @@ public class Assembler { } else if (!value.startsWith("(")) { int index = value.indexOf(";"); node.values.add(new String[] { value.substring(0, index) + ";", value.substring(index).substring(2) }); - } else { // other type with casting + } else { node.values.add(ClassUtil.getCastedValue(value.split(" ")[1], value.split("\\) ")[0].substring(1))); } } @@ -575,7 +574,7 @@ public class Assembler { for (String asd : l.split(", ")) { if (!asd.startsWith("(")) { arr.add(UnicodeUtils.unescape(asd)); - } else { // other type with casting + } else { if (asd.startsWith("(label) ")) { int labelNr = Integer.parseInt(asd.split(" ")[1]); boolean found = false; @@ -614,7 +613,7 @@ public class Assembler { for (String asd : st.split(", ")) { if (!asd.startsWith("(")) { arr.add(UnicodeUtils.unescape(asd)); - } else { // other type with casting + } else { if (asd.startsWith("(label) ")) { int labelNr = Integer.parseInt(asd.split(" ")[1]); boolean found = false; diff --git a/src/me/ByteEdit/edit/Disassembler.java b/src/me/ByteEdit/edit/Disassembler.java index bc5e43d..936a6a0 100644 --- a/src/me/ByteEdit/edit/Disassembler.java +++ b/src/me/ByteEdit/edit/Disassembler.java @@ -371,7 +371,7 @@ public class Disassembler { case "FieldInsnNode": { FieldInsnNode node = (FieldInsnNode) n; return "\t\t" + OpcodesReverse.reverseOpcode(node.getOpcode()) + " " + UnicodeUtils.escapeWithSpaces(node.desc) + " " - + UnicodeUtils.escapeWithSpaces(node.owner) + "/" + UnicodeUtils.escapeWithSpaces(node.name) + "\n"; + + UnicodeUtils.escapeWithSpaces(node.owner) + "/" + UnicodeUtils.escapeWithSpaces(node.name).replace("/", "\\u002F") + "\n"; } case "LabelNode": { LabelNode node = (LabelNode) n; @@ -428,8 +428,9 @@ public class Disassembler { } case "InvokeDynamicInsnNode": { InvokeDynamicInsnNode node = (InvokeDynamicInsnNode) n; - String s = "\t\t" + OpcodesReverse.reverseOpcode(node.getOpcode()) + " [\n\t\t\tname: " + UnicodeUtils.escapeWithSpaces(node.name) - + "\n\t\t\tdesc: " + UnicodeUtils.escapeWithSpaces(node.desc) + "\n\t\t\tHandle: [\n\t\t\t\tname: " + String s = "\t\t" + OpcodesReverse.reverseOpcode(node.getOpcode()) + " [\n\t\t\tname: " + + UnicodeUtils.escapeWithSpaces(node.name).replace("/", "\\u002F") + "\n\t\t\tdesc: " + + UnicodeUtils.escapeWithSpaces(node.desc) + "\n\t\t\tHandle: [\n\t\t\t\tname: " + UnicodeUtils.escapeWithSpaces(node.bsm.getName()) + "\n\t\t\t\towner: " + UnicodeUtils.escapeWithSpaces(node.bsm.getOwner()) + "\n\t\t\t\tdesc: " + UnicodeUtils.escapeWithSpaces(node.bsm.getDesc()) + "\n\t\t\t\tisInterface: " + node.bsm.isInterface() + "\n\t\t\t\ttag: " + node.bsm.getTag() + "\n\t\t\t]\n\t\t\targs: [\n"; @@ -455,9 +456,10 @@ public class Disassembler { s += "\n\t\t\t\t]\n"; } else if (l.getClass().getName().equals("org.objectweb.asm.Handle")) { Handle h = (Handle) l; - s += "\t\t\t\tHandle: [\n\t\t\t\t\tname: " + UnicodeUtils.escapeWithSpaces(h.getName()) + "\n\t\t\t\t\towner: " - + UnicodeUtils.escapeWithSpaces(h.getOwner()) + "\n\t\t\t\t\tdesc: " + UnicodeUtils.escapeWithSpaces(h.getDesc()) - + "\n\t\t\t\t\tisInterface: " + h.isInterface() + "\n\t\t\t\t\ttag: " + h.getTag(); + s += "\t\t\t\tHandle: [\n\t\t\t\t\tname: " + UnicodeUtils.escapeWithSpaces(h.getName()).replace("/", "\\u002F") + + "\n\t\t\t\t\towner: " + UnicodeUtils.escapeWithSpaces(h.getOwner()) + "\n\t\t\t\t\tdesc: " + + UnicodeUtils.escapeWithSpaces(h.getDesc()) + "\n\t\t\t\t\tisInterface: " + h.isInterface() + "\n\t\t\t\t\ttag: " + + h.getTag(); s += "\n\t\t\t\t]\n"; } else { s += "\t\t\t\t" + ClassUtil.getDecompiledValue(l, "") + "\n"; @@ -469,7 +471,7 @@ public class Disassembler { case "MethodInsnNode": { MethodInsnNode node = (MethodInsnNode) n; return "\t\t" + OpcodesReverse.reverseOpcode(node.getOpcode()) + " " + UnicodeUtils.escapeWithSpaces(node.desc) + " " - + UnicodeUtils.escapeWithSpaces(node.owner) + "/" + UnicodeUtils.escapeWithSpaces(node.name) + "\n"; + + UnicodeUtils.escapeWithSpaces(node.owner) + "/" + UnicodeUtils.escapeWithSpaces(node.name).replace("/", "\\u002F") + "\n"; } case "TypeInsnNode": { TypeInsnNode node = (TypeInsnNode) n;