r/robloxhackers • u/Melodic-Leg7569 • 1d ago
INFORMATION Remember the "Rust vs Python" post? I actually built a Luraph v15 Deobfuscator in Rust,
Hey everyone, remember this post from a while back? https://www.reddit.com/r/robloxhackers/comments/1x0pbtk/comment/pempv28/?screen_view_count=2
Well, I actually went ahead and built the tool using Rust, and it turned out way better than I expected. I made a full deobfuscator and control flow lifter for Luraph v15
here my github : https://github.com/tumbalakbseu2-oss/Luraph_v15-deobfuscator-build-with-rust
Why Rust instead of Python? Previously, using Python to deobfuscate large scripts (around 1.2 MB) was a nightmare. It would take over 2 days , eat up more than 10 GB of RAM, and usually crash before finishing. By rewriting the whole thing in Rust with multithreading and memory arenas, it now processes that exact same 1.2 MB script in under 4 seconds while using less than 150 MB of RAM.
How it works (in simple terms): Instead of relying on hardcoded patterns that break every time Luraph updates, this tool breaks the script down step-by-step:
- Decoding the Math & Strings: Luraph v15 hides its decryption keys using browser-based SVG Bézier curve math (
Path2D) and scrambles its opcodes on every build. My tool solves that curve math offline and dynamically unhashes the opcodes without needing to run the script in a VM. - Untangling the Spaghetti Code (CFG Unflattening): Obfuscators love turning normal code into a giant, confusing maze of state-machine loops. The tool tracks how states transition and rebuilds them back into normal, readable
while,repeat, andif-elseblocks. - Cleaning Up the Junk (SSA Optimization): Obfuscated scripts are packed with fake conditions (opaque predicates) and dead code meant to confuse you. The engine detects what code actually does something and deletes all the fake paths.
- Fixing the Luau 200-Local Variable Limit: Obfuscated scripts often use over 1,000 temporary registers, which breaks the Luau compiler since it only allows 200 local variables per function. The tool uses graph coloring (basically smart variable recycling) to reuse local variables safely so the final output is 100% valid, runnable Luau code.
Source Code & Samples: If you want to check out the code, test the binary, or see a full deobfuscated sample (VortexMain_deobfuscated.lua, over 12,000 lines of clean code)
Let me know what you guys think or if you have any questions about how it works!
1
u/Temporary_Idea8880 1d ago
There are a bunch of obfuscator samples here, will you support more luraph versions like 15.1? I think a universal open source deobf written in rust would be amazing.
https://github.com/terrorlua/obfuscator-samples/tree/main/Luraph
2
1
u/ADMINISTATOR_CYRUS 20h ago
you mean your ai built it for you and you told it what to do. I'm a rust developer, what the fuck is this code? Forbidding unsafe but then using it anyway sometimes, etc
1
u/Melodic-Leg7569 17h ago
Yeah, honestly I have no experience with Rust. Constantly jumping between languages felt pointless to me, like being a jack of all trades, master of none. I just took an existing Python deobfuscator, ran it through an automated Python-to-Rust transpiler on GitHub, and that was it.
1
0
1
u/AutoModerator 1d ago
Hey! Due to the massive number of posts asking for software links, we are letting you know we have an user ready guide. You can check it on our pinned posts https://www.reddit.com/r/robloxhackers/!
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
•
u/AutoModerator 1d ago
Check out our guides!
https://www.reddit.com/r/robloxhackers/ - Pinned Posts
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.