Matt Coley
banner
mattcoley.bsky.social
Matt Coley
@mattcoley.bsky.social
Now Recaf 4X can inline return values of simple static methods (like a xor string decryption call in this case)
September 8, 2025 at 8:42 AM
Recaf's interactive deobfuscation window now lets you specify how many passes to run. For some obfuscation patterns that can't be one-shot in one linear pass (opaque control flow leading to more opaque control flow repeated N times) increasing the pass count to N+1 reduces it completely.
August 20, 2025 at 10:59 AM
And from my last 🧵 here's the sample that had attributes lying about their lengths being patched automatically (amongst many other tricks).
July 5, 2025 at 6:01 AM
Updates to how some of the transformers work has cleaned up the output on most obfuscated samples I have. Here's a demo on a Minecraft server plugin getting optimized back to almost perfectly legible source.
July 5, 2025 at 5:59 AM
Anyways, Recaf will soon support loading these classes so you don't have to go through any of this pain like I did.
July 3, 2025 at 11:10 PM
The exact line in the Hotspot class file parser responsible for supporting this can be found here: github.com/openjdk/jdk/...

The code is so old it predates OpenJDK's git history. No, not moving to GitHub. Git. This code has been around since before they migrated to using VCS/Git. At least 18 y/o.
July 3, 2025 at 11:03 PM
Here's the reported length in the attribute vs a hex viewer annotated with the relevant locations showing the discrepancy.
July 3, 2025 at 10:56 PM
The sample here reports the Code attribute has 163 bytes. But if you read the attribute fully (with spec complaint parsing) then you see that it actually is 189 bytes.

The trick here is for any Code attribute on a method, you shift your read buffer index to the actually red position.
July 3, 2025 at 10:44 PM
Honestly, fuck Hotspot sometimes. A method body can just *lie* about how long its data is. Obviously nobody who makes a class parser is going to be keen on this until they see it in the wild. Does the spec say anything about this? Of course not!
July 3, 2025 at 10:40 PM
Alright, I rewrote my #JavaFX docking framework, BentoFX, from scratch (again) after incorporating it into multiple projects and learning what the pain points were with the existing architecture.

Here's what Bento looks like in practice:
June 20, 2025 at 10:27 PM
June 1, 2025 at 7:53 AM
Its one of the meatier changelogs I've made as of late
May 29, 2025 at 2:01 PM
This was the first time a user reported the issue. Four whole years ago. Something I did when I started the 3X rewrite has set this off, and whatever the cause is has stuck around up through now.
May 29, 2025 at 1:44 PM
You have no idea how much pain this stupid white rectangle problem has caused me. Still have zero clue what is causing it... 🥲 #JavaFX
May 29, 2025 at 1:37 PM
You would need to have the tabs be oriented on opposite sides like this (pic 1)

Collapsing the left, then right causes (pic 2) where the 2nd collapse yanks the divider in the other direction. The backing logic for this system is kinda crude and needs to have more durable state tracking.
April 26, 2025 at 6:55 AM
I'm working on a Docking Framework for #JavaFX - Its very much a WIP, but if anyone has a use for such a thing and has feature requirements/ideas I'd love to hear them.

github.com/Col-E/BentoFX
April 26, 2025 at 4:13 AM
Registering a listener which dumps the info into a CSV for instance is pretty helpful.
January 19, 2025 at 3:58 AM
November 28, 2024 at 6:37 AM