MCPcopy Create free account
hub / github.com/NeRdTheNed/jSus / bytesToClass

Method bytesToClass

src/main/java/com/github/NeRdTheNed/jSus/util/Util.java:61–88  ·  view source on GitHub ↗
(byte[] clazz, String name)

Source from the content-addressed store, hash-verified

59 }
60
61 public static ClassNode bytesToClass(byte[] clazz, String name) {
62 try {
63 final ClassReader reader = new ClassReader(clazz);
64 final ClassNode node = new ClassNode();
65 reader.accept(node, ClassReader.SKIP_DEBUG);
66 return node;
67 } catch (final Exception e) {
68 System.err.println("Malformed class " + name + ", trying to read with CAFED00D");
69 e.printStackTrace();
70 }
71
72 try {
73 final ClassFileReader classFileReader = new ClassFileReader();
74 final ClassFile classFile = classFileReader.read(clazz);
75 // Try to remove junk data that confuses ASM
76 new IllegalStrippingTransformer(classFile).transform();
77 final byte[] fixedClass = new ClassFileWriter().write(classFile);
78 final ClassReader reader = new ClassReader(fixedClass);
79 final ClassNode node = new ClassNode();
80 reader.accept(node, ClassReader.SKIP_DEBUG);
81 return node;
82 } catch (final Exception e) {
83 System.err.println("Malformed class " + name + ", could not read with CAFED00D");
84 e.printStackTrace();
85 }
86
87 return null;
88 }
89
90 public static ClassNode classfileFileToClass(File clazz) {
91 return classfilePathToClass(clazz.toPath());

Callers 1

streamToClassMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected