Zum Inhalt springen
Aback Tools Logo

Lua-Bytecode-Disassembler

Zerlegen Sie kompilierten Lua 5.1-Bytecode (.luac-Dateien), um Anweisungen für virtuelle Maschinen, Funktionsprototypen, Konstanten und lokale Variablen zu überprüfen. Laden Sie eine .luac-Datei hoch oder fügen Sie deren Hex-Dump ein, um eine vollständig strukturierte Disassemblierung mit navigierbarem Funktionsbaum und detaillierter Opcode-Dekodierung zu erhalten. Die gesamte Verarbeitung erfolgt lokal und privat.

Lua Bytecode Disassembler
Disassemble compiled Lua 5.1 bytecode (.luac files) into human-readable instructions. Upload a .luac file or paste its hex dump to view function prototypes, opcodes, constants, upvalues, locals, and debug information. Supports Lua 5.1 bytecode format.

No bytecode loaded

Upload a compiled .luac file or paste its hex dump to begin disassembly

or

Warum unseren Lua-Bytecode-Disassembler verwenden?

  • Lua 5.1-Bytecode-Analyse: Analysieren und disassemblieren Sie mit Lua 5.1 kompilierte Bytecodes (.luac-Dateien) mit vollständiger Unterstützung für alle 38 Opcodes, ABC/ABx/AsBx-Befehlsmodi und korrekter Dekodierung von Konstanten, Upvalues, Locals und Zeilennummerninformationen.
  • Verschachtelter Funktionsbaum: Entdecken Sie die vollständige Funktionsprototyphierarchie mit einer interaktiven Baumansicht. Navigieren Sie zwischen verschachtelten Abschlüssen, sehen Sie sich die Anweisungslisten pro Funktion an und führen Sie mit einem Klick einen Drilldown zu untergeordneten Funktionen durch.
  • Detaillierte Befehlsdekodierung: Jeder Befehl wird vollständig mit rohem Hexadezimalwert, Opcode-Namen, Registeroperanden und einem für Menschen lesbaren Kommentar, der seine Wirkung erklärt, dekodiert. Durch die spezielle Hervorhebung von Return- und Tail-Call-Anweisungen ist der Kontrollfluss leicht zu verfolgen.
  • 100 % browserlokale Verarbeitung: Die gesamte Bytecode-Analyse und -Disassemblierung erfolgt vollständig in Ihrem Browser. Ihre .luac-Dateien und Hex-Dumps verlassen niemals Ihr Gerät. Keine Uploads auf einen Server, keine Anmeldung erforderlich und keine Nutzungsbeschränkungen. Für immer kostenlos.

Häufige Anwendungsfälle für Lua Bytecode Disassembler

  • Reverse Engineering von Lua-Anwendungen: Zerlegen Sie kompilierte Lua-Skripte aus Spielen, eingebetteten Systemen und Anwendungen, um deren Logik zu verstehen. Der Bytecode-Disassembler enthüllt die genauen Anweisungen und den Kontrollfluss und hilft Ihnen bei der Analyse von proprietärem oder verschleiertem Lua-Code.
  • Interna der virtuellen Lua-Maschine lernen: Verwenden Sie den Disassembler als Lehrmittel, um zu verstehen, wie die Lua-VM Code ausführt. Sehen Sie, wie hochrangige Lua-Konstrukte wie Schleifen, Funktionsaufrufe, Abschlüsse und Tabellenoperationen in Bytecode-Anweisungen übersetzt werden.
  • Sicherheitsüberprüfung und Malware-Analyse: Analysieren Sie kompilierte Lua-Skripte auf bösartiges Verhalten. Zerlegen Sie potenziell schädliche .luac-Dateien, um ihre Anweisungen zu überprüfen, verdächtige Konstantenzeichenfolgen zu erkennen und den gesamten Umfang der eingebetteten Logik zu verstehen, ohne sie auszuführen.
  • Überprüfung des Lua-Obfuscators: Testen Sie die Wirksamkeit der Lua-Verschleierungstools, indem Sie die Ausgabe zerlegen. Stellen Sie sicher, dass die Umbenennung von Variablen, die Zeichenfolgenkodierung und die Verschleierung des Kontrollflusses ordnungsgemäß auf die Bytecode-Ebene und nicht nur auf die Quellebene angewendet werden.
  • Compiler- und Sprachentwicklungsforschung: Vergleichen Sie die Bytecode-Ausgabe verschiedener Lua-Compiler und -Versionen. Verstehen Sie Optimierungsentscheidungen, Befehlsauswahl und wie verschiedene Lua-Konstrukte in den Versionen 5.1 bis 5.3 unterschiedlich kompiliert werden.
  • Wiederherstellung und Dokumentation von Legacy-Code: Stellen Sie das Verständnis für undokumentierte oder archivierte Lua-Module wieder her, indem Sie ihre kompilierten Formen zerlegen. Die detaillierte Befehlsliste, die Konstantentabellen und die Informationen zu lokalen Variablen helfen bei der Rekonstruktion der ursprünglichen Codesemantik.

Was ist Lua-Bytecode-Disassemblierung?

Bei der Lua-Bytecode-Disassemblierung wird kompilierter Lua-Bytecode (.luac-Dateien) wieder in eine für Menschen lesbare Folge von Anweisungen für virtuelle Maschinen umgewandelt. Wenn Sie ein Lua-Skript mit Luac kompilieren oder es über einen Lua-Interpreter ausführen, wird der Quellcode in ein Zwischenbytecodeformat übersetzt, das die Lua-VM ausführt. Durch die Disassemblierung wird dieses kompilierte Format umgekehrt, um die genauen Anweisungen, Konstanten, Upvalues ​​und Funktionsprototypen offenzulegen, aus denen das kompilierte Programm besteht, ohne dass Zugriff auf den ursprünglichen Quellcode erforderlich ist.

So funktioniert unser Lua-Bytecode-Disassembler

  1. Eingabe: Laden Sie eine kompilierte .luac-Datei hoch oder fügen Sie deren hexadezimale Darstellung in das Eingabefeld ein. Das Tool akzeptiert das Lua 5.1-Bytecode-Format, die am weitesten verbreitete Version für die Bytecode-Analyse und das Reverse Engineering kompilierter Lua-Skripte.
  2. Parsen: Der Disassembler liest den Binärheader, um die Signatur, Version, Endianness und Datentypgrößen zu überprüfen. Anschließend analysiert es alle Funktionsprototypen rekursiv und dekodiert jeden 32-Bit-Befehl in seinen Opcode und seine Operanden (A, B, C, Bx oder sBx, je nach Befehlsmodus).
  3. Ausgabe: Die strukturierte Ausgabe zeigt die Header-Informationen, einen navigierbaren Funktionsbaum, detaillierte Prototypen pro Funktion (Parameter, Stapelgröße, Vararg-Status), eine vollständige Befehlsliste mit Kommentaren, eine Konstantentabelle und lokale Variablenbereiche.

Was während der Demontage angezeigt wird

  • Header-Informationen: Bytecode-Signatur, Lua-Version, Endianness und Datentypgrößen (int, size_t, Anweisung, Zahl), die das Bytecode-Format beschreiben.
  • Funktionsbaum: Eine hierarchische Ansicht aller Funktionsprototypen in der Bytecode-Datei mit Zeilenbereichen und Befehlsanzahlen für eine schnelle Navigation zwischen verschachtelten Abschlüssen.
  • Befehlsliste: Jeder Befehl zeigt seinen Adressoffset, den rohen Hexadezimalwert, den Opcode-Namen (MOVE, LOADK, ADD, CALL usw.), die dekodierte Disassemblierung mit Register-/Konstantenreferenzen und einen Kommentar in Klartext, der den Vorgang erklärt.
  • Konstanten- und lokale Tabellen: Alle von der Funktion verwendeten konstanten Werte (Zahlen, Zeichenfolgen, boolesche Werte, Null) sowie lokale Variablenbereiche mit ihren Start- und Endprogrammzählerpositionen.

Datenschutz, Sicherheit und Verfügbarkeit

Ihre Privatsphäre ist vollständig geschützt. Die gesamte Lua-Bytecode-Disassemblierung erfolgt vollständig in Ihrem Browser unter Verwendung von JavaScript – es werden niemals Bytecode-Daten auf einen Server hochgeladen, gespeichert, protokolliert oder geteilt. Das Tool erfordert keine Kontoerstellung, keine Anmeldung und legt keine Dateigrößenbeschränkungen fest. Es ist völlig kostenlos, ohne Premium-Stufen, Nutzungsbeschränkungen oder versteckte Gebühren. Sie können es so oft wie nötig für Sicherheitsforschung, Reverse Engineering, Bildung oder andere Zwecke verwenden.

Häufig gestellte Fragen

Ein Lua-Bytecode-Disassembler ist ein Tool, das kompilierten Lua-Bytecode (.luac-Dateien) in eine für Menschen lesbare Folge von Anweisungen für virtuelle Maschinen umwandelt. Es zeigt die genauen Opcodes, Registeroperanden, Konstanten und Funktionsprototypen, die die Lua-VM ausführt, sodass Sie die kompilierte Version eines Lua-Skripts verstehen können, ohne auf den ursprünglichen Quellcode zugreifen zu müssen.

Der Disassembler unterstützt vollständig das Lua 5.1-Bytecode-Format, die am häufigsten dekompilierte und analysierte Version. Lua 5.1 verfügt über 38 Opcodes, die alle gängigen Operationen wie Verschiebungen, Arithmetik, Tabellenzugriff, Funktionsaufrufe, Schleifen und Schließungen abdecken. Der Parser validiert die Bytecode-Signatur und -Version und meldet einen Fehler für nicht unterstützte Versionen.

Sie können eine .luac-Datei direkt über die Schaltfläche „Hochladen“ hochladen oder einen Hex-Dump des Bytecodes in den Textbereich einfügen. Das Tool analysiert automatisch die Binärdaten und zeigt die strukturierte Zerlegung an. Bei Hex-Dumps sollte die Eingabe eine einfache hexadezimale Zeichenfolge mit optionalen Leerzeichen oder Zeilenumbrüchen zwischen den Bytes sein.

Ja. Das Funktionsbaumfenster zeigt alle Funktionsprototypen in der Bytecode-Datei, einschließlich verschachtelter Abschlüsse. Klicken Sie auf eine beliebige Funktion in der Baumstruktur, um die Anweisungsliste und die Konstantentabelle auf diese Funktion umzustellen. Dies ist besonders nützlich für die Analyse von verschleiertem Lua-Code, der mehrere verschachtelte Abschlüsse verwendet.

Die Ausgabe umfasst den Bytecode-Header (Signatur, Version, Endianness, Datengrößen), einen Funktionsbaum mit allen Prototypen, Details pro Funktion (Parameter, Stapelgröße, Vararg-Status), eine vollständige Befehlsliste mit rohem Hex, Opcode-Namen, dekodierten Operanden und Kommentaren, eine Konstantentabelle mit allen Zahlen-/Zeichenfolgen-/booleschen/Null-Werten und eine lokale Variablentabelle mit Bereichsinformationen.

Lua 5.1 verwendet drei Befehlscodierungsmodi. Der ABC-Modus kodiert drei Operanden: A (8-Bit-Zielregister), B (9-Bit-Quellregister oder konstanter Index) und C (9-Bit-zweite Quelle oder Optionen). Der ABx-Modus codiert A und einen kombinierten Bx-Operanden (18 Bit), der für größere Indizes in der Konstantentabelle verwendet wird. Der AsBx-Modus ist eine vorzeichenbehaftete Variante von ABx, die für Sprungoffsets in JMP-, FORLOOP- und FORPREP-Anweisungen verwendet wird.

Absolut. Das gesamte Parsen und Zerlegen des Bytecodes erfolgt vollständig in Ihrem Browser mithilfe von JavaScript. Ihre .luac-Dateien und Hex-Dumps verlassen niemals Ihr Gerät und werden niemals an einen Server gesendet. Es ist kein Konto erforderlich, es werden keine Daten gespeichert und es findet kein Tracking statt. Dies macht das Tool sicher für die Analyse proprietärer oder sensibler kompilierter Lua-Skripte.

Verschleierter Lua-Bytecode kann ungewöhnliche Muster aufweisen, wie z. B. übermäßig lange konstante Zeichenfolgen (vermutlich codierte Nutzlasten), eine hohe Anzahl verschachtelter Schließungen, redundante MOVE-Anweisungen, starke Verwendung von GETUPVAL/SETUPVAL für indirekten Variablenzugriff oder undurchsichtiger Kontrollfluss mit vielen JMP-Anweisungen. Der Disassembler hilft beim Erkennen dieser Muster, indem er die vollständige Anweisungssequenz anzeigt.

Ja, 100 % kostenlos. Es gibt keine Anmeldung, keine Premium-Stufe, keine Nutzungsbeschränkungen und keine Dateigrößenbeschränkungen. Das Tool läuft vollständig in Ihrem Browser und kann jederzeit kostenlos auf Aback Tools verwendet werden.