Skip to content

Commit 72d272e

Browse files
Col-EItzSomebody
authored andcommitted
Always use Cafedude in case a crasher targets the ASM write phase instead of just the reader logic
1 parent b17ee47 commit 72d272e

File tree

1 file changed

+14
-23
lines changed

1 file changed

+14
-23
lines changed

src/main/java/com/javadeobfuscator/deobfuscator/Deobfuscator.java

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -280,29 +280,20 @@ public void loadInput(String name, byte[] data) {
280280
}
281281

282282
try {
283-
284-
ClassReader reader;
285-
ClassNode node;
286-
try {
287-
reader = new ClassReader(data);
288-
node = new ClassNode();
289-
reader.accept(node, ClassReader.SKIP_FRAMES);
290-
} catch (Throwable t) {
291-
// Check and see if Cafedood can patch out ASM crashing data
292-
ClassFileReader cfr = new ClassFileReader();
293-
cfr.setDropForwardVersioned(true);
294-
cfr.setDropEofAttributes(true);
295-
ClassFile cf = cfr.read(data);
296-
new IllegalStrippingTransformer(cf).transform();
297-
ClassFileWriter cfw = new ClassFileWriter();
298-
byte[] fixedData = cfw.write(cf);
299-
// Should be compliant now unless a new crash is discovered.
300-
// Check for updates or open an issue on the CAFED00D project if this occurs
301-
reader = new ClassReader(fixedData);
302-
node = new ClassNode();
303-
reader.accept(node, ClassReader.SKIP_FRAMES);
304-
}
305-
283+
// Pass the bytecode through cafedude to filter out any ASM crashing data.
284+
// We always do this step since there are ASM crashes targeting both reading and writing steps
285+
ClassFileReader cfr = new ClassFileReader();
286+
cfr.setDropForwardVersioned(true);
287+
cfr.setDropEofAttributes(true);
288+
ClassFile cf = cfr.read(data);
289+
new IllegalStrippingTransformer(cf).transform();
290+
ClassFileWriter cfw = new ClassFileWriter();
291+
byte[] fixedData = cfw.write(cf);
292+
// Should be compliant now unless a new crash is discovered.
293+
// Check for updates or open an issue on the CAFED00D project if this occurs
294+
ClassReader reader = new ClassReader(fixedData);
295+
ClassNode node = new ClassNode();
296+
reader.accept(node, ClassReader.SKIP_FRAMES);
306297
readers.put(node, reader);
307298
setConstantPool(node, new ConstantPool(reader));
308299

0 commit comments

Comments
 (0)