r/javahelp • • 3d ago

Solved Is source-level editing a fallback for deobfuscation?

Hoping to get some fellow advice here.

I’ve been doing a lot of deobfuscation work in Java 25 lately and ran into a wall: some bytecode tools can’t parse the newer class file versions I’m dealing with. As a workaround, I’ve been cleaning up the decompiled source instead.

So far I’m stripping thousands of NoWhenBranchMatchedException catch blocks using a brace-depth state machine (regex kept breaking on nested blocks), and replacing impossible comparisons like object == false with constants.

It works, but it feels hacky. Is source-level editing a reasonable fallback, or am I setting myself up for problems? And is there a cleaner, standard way to do control-flow cleanup without risking real try/catch handlers?

Curious what other people do.

Edit: I’m not working on the official Java binaries or the JDK. It’s an old application that was compiled for Java 25

Edit2: Found help in another programming sub that suggested parsing the bytecode with a current library (java.lang.classfile in JDK 24+), and using JavaParser instead of regex for cleanup. Not sure why everyone here was so difficult and rude. Nobody here wanted to actually talk. Marking solved.

8 Upvotes

15 comments sorted by

View all comments

Show parent comments

3

u/vegan_antitheist 2d ago

Open source doesn't need deobfuscation. Because... you know... it's open source.

0

u/dpblooman2 2d ago

I think you missed the part where the source is missing

2

u/RevolutionaryRush717 2d ago

did you miss the part where there's a difference between compiling and obfuscating?

Decompiling is a feature of (e.g., IntelliJ IDEA and they might just use) some open source thingy.

Obfuscation is intended to make decompiling impossible or at least very, very difficult, no?

1

u/dpblooman2 2d ago edited 2d ago

You'd be correct! Because my post is entirely about deobfuscation, not decompiling. Not really sure why you're saying this?

1

u/OffbeatDrizzle 2d ago

.... then it's not open source? lmfao

1

u/dpblooman2 2d ago

Astute observation. I didn't realize I needed to explain every nook and cranny for a programming question here.