Fixed CFR not returning code + some improvements over all
This commit is contained in:
parent
3ebcc401d5
commit
0db4c35828
4 changed files with 38 additions and 37 deletions
|
@ -67,12 +67,12 @@ public class CFRDecompiler extends Decompiler {
|
||||||
new the.bytecode.club.bytecodeviewer.api.ExceptionUI(e);
|
new the.bytecode.club.bytecodeviewer.api.ExceptionUI(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
String fuckery = fuckery(fileStart);
|
String fileThing = fileThing(fileStart);
|
||||||
if (!BytecodeViewer.fatJar) {
|
/*if (!BytecodeViewer.fatJar) {
|
||||||
try {
|
try {
|
||||||
ProcessBuilder pb = new ProcessBuilder(ArrayUtils.addAll(
|
ProcessBuilder pb = new ProcessBuilder(ArrayUtils.addAll(
|
||||||
new String[]{BytecodeViewer.getJavaCommand(), "-jar", Resources.findLibrary("cfr")},
|
new String[]{BytecodeViewer.getJavaCommand(), "-jar", Resources.findLibrary("cfr")},
|
||||||
generateMainMethod(tempClass.getAbsolutePath(), fuckery)
|
generateMainMethod(tempClass.getAbsolutePath(), fileThing)
|
||||||
));
|
));
|
||||||
BytecodeViewer.sm.stopBlocking();
|
BytecodeViewer.sm.stopBlocking();
|
||||||
Process p = pb.start();
|
Process p = pb.start();
|
||||||
|
@ -84,19 +84,19 @@ public class CFRDecompiler extends Decompiler {
|
||||||
BytecodeViewer.sm.setBlocking();
|
BytecodeViewer.sm.setBlocking();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
org.benf.cfr.reader.Main.main(generateMainMethod(tempClass.getAbsolutePath(), fuckery));
|
org.benf.cfr.reader.Main.main(generateMainMethod(tempClass.getAbsolutePath(), fileThing));
|
||||||
}
|
}*/
|
||||||
|
org.benf.cfr.reader.Main.main(generateMainMethod(tempClass.getAbsolutePath(), fileThing));
|
||||||
|
|
||||||
tempClass.delete();
|
tempClass.delete();
|
||||||
|
|
||||||
return findFile(new File(fuckery).listFiles());
|
return findFile(new File(fileThing).listFiles());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Random r = new Random();
|
Random r = new Random();
|
||||||
File f;
|
File f;
|
||||||
|
|
||||||
public String fuckery(String start) {
|
public String fileThing(String start) {
|
||||||
boolean b = false;
|
boolean b = false;
|
||||||
while (!b) {
|
while (!b) {
|
||||||
f = new File(start + r.nextInt(Integer.MAX_VALUE));
|
f = new File(start + r.nextInt(Integer.MAX_VALUE));
|
||||||
|
@ -257,21 +257,21 @@ public class CFRDecompiler extends Decompiler {
|
||||||
|
|
||||||
String fileStart = BytecodeViewer.tempDirectory + BytecodeViewer.fs;
|
String fileStart = BytecodeViewer.tempDirectory + BytecodeViewer.fs;
|
||||||
|
|
||||||
String fuckery = fuckery(fileStart);
|
String fileThing = fileThing(fileStart);
|
||||||
|
|
||||||
org.benf.cfr.reader.Main.main(generateMainMethod(
|
org.benf.cfr.reader.Main.main(generateMainMethod(
|
||||||
tempZip.getAbsolutePath(), fuckery));
|
tempZip.getAbsolutePath(), fileThing));
|
||||||
|
|
||||||
tempZip.delete();
|
tempZip.delete();
|
||||||
File fuck = new File(fuckery);
|
File file = new File(fileThing);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
zip(fuck, new File(zipName));
|
zip(file, new File(zipName));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
new the.bytecode.club.bytecodeviewer.api.ExceptionUI(e);
|
new the.bytecode.club.bytecodeviewer.api.ExceptionUI(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
fuck.delete();
|
file.delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("resource")
|
@SuppressWarnings("resource")
|
||||||
|
|
|
@ -67,6 +67,23 @@ public class ClassNodeDecompiler extends Decompiler {
|
||||||
}
|
}
|
||||||
sb.append(" {");
|
sb.append(" {");
|
||||||
sb.append(BytecodeViewer.nl);
|
sb.append(BytecodeViewer.nl);
|
||||||
|
if (cn.sourceDebug != null) {
|
||||||
|
sb.append(" ");
|
||||||
|
sb.append("<SourceDebug=" + cn.sourceDebug + ">");
|
||||||
|
sb.append(BytecodeViewer.nl);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cn.sourceFile != null) {
|
||||||
|
sb.append(" ");
|
||||||
|
sb.append("<SourceFile=" + cn.sourceFile + ">");
|
||||||
|
sb.append(BytecodeViewer.nl);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cn.signature != null) {
|
||||||
|
sb.append(" ");
|
||||||
|
sb.append("<Sig=" + cn.signature + ">");
|
||||||
|
}
|
||||||
|
|
||||||
for (FieldNode fn : cn.fields) {
|
for (FieldNode fn : cn.fields) {
|
||||||
sb.append(BytecodeViewer.nl);
|
sb.append(BytecodeViewer.nl);
|
||||||
sb.append(" ");
|
sb.append(" ");
|
||||||
|
@ -115,24 +132,6 @@ public class ClassNodeDecompiler extends Decompiler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cn.sourceDebug != null) {
|
|
||||||
sb.append(BytecodeViewer.nl);
|
|
||||||
sb.append(" ");
|
|
||||||
sb.append("SourceDebug: " + cn.sourceDebug);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cn.sourceFile != null) {
|
|
||||||
sb.append(BytecodeViewer.nl);
|
|
||||||
sb.append(" ");
|
|
||||||
sb.append("SourceFile: " + cn.sourceFile);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cn.signature != null) {
|
|
||||||
sb.append(BytecodeViewer.nl);
|
|
||||||
sb.append(" ");
|
|
||||||
sb.append("Signature: " + cn.sourceFile);
|
|
||||||
}
|
|
||||||
|
|
||||||
sb.append(BytecodeViewer.nl);
|
sb.append(BytecodeViewer.nl);
|
||||||
sb.append("}");
|
sb.append("}");
|
||||||
// System.out.println("Wrote end for " + cn.name +
|
// System.out.println("Wrote end for " + cn.name +
|
||||||
|
|
|
@ -328,10 +328,10 @@ public class InstructionPrinter {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
sb.append(nameOpcode(frame.opcode()) + " ");
|
sb.append(nameOpcode(frame.opcode()) + " ");
|
||||||
|
|
||||||
sb.append("(Locals: ");
|
sb.append("(Locals");
|
||||||
if (frame.local != null
|
if (frame.local != null
|
||||||
&& frame.local.size() > 0) {
|
&& frame.local.size() > 0) {
|
||||||
sb.append(frame.local.size());
|
sb.append("[" + frame.local.size() + "]:");
|
||||||
sb.append(" ");
|
sb.append(" ");
|
||||||
sb.append(frame.local.get(0).toString());
|
sb.append(frame.local.get(0).toString());
|
||||||
if (frame.local.size() > 1) {
|
if (frame.local.size() > 1) {
|
||||||
|
@ -341,14 +341,14 @@ public class InstructionPrinter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sb.append("0, null");
|
sb.append("[0]: null");
|
||||||
}
|
}
|
||||||
sb.append(") ");
|
sb.append(") ");
|
||||||
|
|
||||||
sb.append("(Stack: ");
|
sb.append("(Stack");
|
||||||
if (frame.stack != null
|
if (frame.stack != null
|
||||||
&& frame.stack.size() > 0) {
|
&& frame.stack.size() > 0) {
|
||||||
sb.append(frame.stack.size());
|
sb.append("[" + frame.stack.size() + "]:");
|
||||||
sb.append(" ");
|
sb.append(" ");
|
||||||
sb.append(frame.stack.get(0).toString());
|
sb.append(frame.stack.get(0).toString());
|
||||||
if (frame.stack.size() > 1) {
|
if (frame.stack.size() > 1) {
|
||||||
|
@ -358,7 +358,7 @@ public class InstructionPrinter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sb.append("0, null");
|
sb.append("[0]: null");
|
||||||
}
|
}
|
||||||
sb.append(")");
|
sb.append(")");
|
||||||
|
|
||||||
|
|
|
@ -237,6 +237,8 @@ public class MethodNodeDecompiler {
|
||||||
tokens.add("strictfp");
|
tokens.add("strictfp");
|
||||||
if ((access & Opcodes.ACC_BRIDGE) != 0)
|
if ((access & Opcodes.ACC_BRIDGE) != 0)
|
||||||
tokens.add("bridge");
|
tokens.add("bridge");
|
||||||
|
if ((access & Opcodes.ACC_SYNTHETIC) != 0)
|
||||||
|
tokens.add("synthetic");
|
||||||
if ((access & Opcodes.ACC_VARARGS) != 0)
|
if ((access & Opcodes.ACC_VARARGS) != 0)
|
||||||
tokens.add("varargs");
|
tokens.add("varargs");
|
||||||
if (tokens.size() == 0)
|
if (tokens.size() == 0)
|
||||||
|
|
Loading…
Reference in a new issue