Alle Projekte

In Arbeit

Luminol, ein GLua-Deobfuskator

Ein C#-Tool, das verschleiertes Garry’s-Mod-Lua wieder in lesbaren Code verwandelt, zum Prüfen von Addons, bevor sie auf einen Server kommen.

Rolle
Entwurf und Umsetzung
Stack
C# 15, .NET 11, Loretta (Lua-Parser)
Kontext
Persönliches Security-Projekt
Status
In Arbeit

Das Problem

Verschleiertes Lua ist der übliche Ort, an dem sich Backdoors in Garry’s-Mod-Addons verstecken: versteckte Remote-Code-Ausführung, Payloads, die Adminrechte vergeben, Daten, die an fremde Server gesendet werden. Serverbetreiber installieren Addons, die sie nicht lesen können.

So funktioniert es

Screenshot folgt in Kürze

Verschleierte Eingabe neben der bereinigten Ausgabe.

assets/projects/glua-deobfuscator/before-after.webp (nebeneinander, gut lesbare Schriftgröße)

Vor und nach dem Pass zum Zusammenfassen von Konkatenationen. Echte Ausgabe aus der Sandbox luminol-explore, zur besseren Lesbarkeit aufbereitet.

Screenshot folgt in Kürze

Die Terminal-Ausgabe der Sandbox: ein laufender Pass mit seinem Trace und dem hervorgehobenen Ergebnis.

assets/projects/glua-deobfuscator/pass-trace.webp (enger Zuschnitt auf das Terminal)

Einem Pass bei der Arbeit zusehen: jeder besuchte Knoten und was sich geändert hat. Echte Ausgabe aus der Sandbox luminol-explore, zur besseren Lesbarkeit aufbereitet.

Wo es gerade steht

Jeden Pass prototypisiere ich in einer öffentlichen Sandbox, luminol-explore, und schreibe ihn dann sauber in Luminol neu. Die Sandbox enthält die Pass-Pipeline, einen Tracing-Rewriter, der jeden Schritt zeigt, und den ersten Pass, der String-Konkatenation zusammenfasst. Das Umbenennen kommt als Nächstes.

Das Ziel ist ein Kommandozeilen- und ein grafisches Werkzeug für Windows und Linux, mit dem man jeden Pass einzeln durchgehen und dabei Syntaxbaum und Code sich verändern sehen kann.

Umfang

Von Grund auf defensiv. Demonstrationen verwenden bekannte bösartige Samples und meine eigenen Testdateien, keine kommerziellen Addons.