All work

In progress

Luminol, a GLua deobfuscator

A C# tool that turns obfuscated Garry’s Mod Lua back into readable code, for auditing addons before they go on a server.

Role
Design and implementation
Stack
C# 15, .NET 11, Loretta (Lua parser)
Context
Personal security project
Status
In progress

The problem

Obfuscated Lua is the usual way backdoors hide in Garry’s Mod addons: hidden remote code execution, payloads that grant admin rights, data sent to outside servers. Server owners install addons they can’t read.

How it works

Screenshot coming soon

Obfuscated input next to the cleaned output.

assets/projects/glua-deobfuscator/before-after.webp (side by side, readable text size)

Before and after the concatenation-folding pass. Real output from the luminol-explore sandbox, rendered for readability.

Screenshot coming soon

The sandbox’s terminal output: one pass running, with its trace and the highlighted result.

assets/projects/glua-deobfuscator/pass-trace.webp (tight crop to the terminal)

Watching a pass work: every node it visits, and what changed. Real output from the luminol-explore sandbox, rendered for readability.

Where it is now

I prototype each pass in a public sandbox, luminol-explore, then rewrite it cleanly in Luminol. The sandbox has the pass pipeline, a tracing rewriter that shows every step, and the first pass, which folds string concatenation. Renaming comes next.

The goal is a command-line tool and a graphical one, running on Windows and Linux, where you can step through every pass and see the syntax tree and the code change as it goes.

Scope

Defensive by design. Demonstrations use known malicious samples and my own test files, not commercial addons.