Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
dconstruct — Ein Disassembler und experimenteller Decompiler für TLOU2 DC Scripts. | Kitploit
Tools/GitHubGitHub/deepquantum/dconstruct
Statische AnalyseReverse EngineeringDebuggerBinäranalyseFirmware-Analyse
GitHubdeepquantum/dconstruct

dconstruct

Ein Disassembler und experimenteller Decompiler für TLOU2 DC Scripts.

Repository anzeigen
23219vor 20 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Version License: CC BY-NC-ND 4.0

dconstruct

Full disassembly and decompilation animation

Open the source MP4

dconstruct ist ein Reverse-Engineering-Werkzeug für die DC-Script-Dateien, die in The Last of Us Part II verwendet werden. Es verfügt über einen Disassembler und einen Decompiler.

Es gibt .asm-Dateien aus, die die disassemblierten Strukturen und den Bytecode enthalten, sowie .dcpl-Dateien (DC Pseudo Language), die C-ähnlichen Pseudocode enthalten.

Sie können auch Änderungen an Dateien über die Befehlszeile vornehmen, einschließlich des Ersetzens ganzer Strukturen mit geringem Aufwand. Dies macht das Erstellen von Mods, die einfach ein paar Werte in den .bin-Dateien ändern, extrem einfach.

Hauptfunktionen

  • Optimiert für Geschwindigkeit. Das Disassemblieren und Decompilieren von Dateien ist extrem schnell.
  • Präzise Rekonstruktion des ursprünglichen Quellcodes, insbesondere des Kontrollflusses
  • Präzise automatische Interpretation aller Strukturen in der Disassemblierung
  • Gleichzeitiges Disassemblieren und Decompilieren mehrerer Dateien. Das Decompilieren jeder einzelnen .bin-Datei im Spiel dauert nur wenige Sekunden
  • Vornehmen von Änderungen über das -e-Flag, Erstellen neuer Dateien, die Sie für Mods verwenden können
  • Laden benutzerdefinierter Sidbases für die Disassemblierung

Verwendung

Zunächst wird empfohlen, das entpackte dconstruct-Verzeichnis an einen sicheren Ort zu verschieben, z.B. C:\Program Files.

Um dconstruct so benutzerfreundlich wie möglich zu gestalten, wird empfohlen, das .\bin-Verzeichnis innerhalb des dconstruct-Ordners zu Ihrem PATH hinzuzufügen. Weitere Informationen finden Sie hier oder befolgen Sie diese kurzen Schritte:

  • Gehen Sie in Ihre Windows-Suchleiste und geben Sie "Umgebungsvariablen" ein. Sie sollten eine Option sehen, die "Systemumgebungsvariablen bearbeiten" lautet.
  • Nachdem Sie diese Option ausgewählt haben, sollte ein Fenster mit dem Titel "Systemeigenschaften" erscheinen. Über den Schaltflächen "OK", "Abbrechen" und "Übernehmen" sollten Sie eine Schaltfläche mit der Aufschrift "Umgebungsvariablen..." sehen.
  • Nachdem Sie auf diese Schaltfläche geklickt haben, sollte ein weiteres Fenster erscheinen. Gehen Sie hier zur zweiten Tabelle (mit dem Titel "Systemvariablen") und suchen Sie den Eintrag mit dem Variablennamen "Path". Doppelklicken Sie darauf.
  • Wählen Sie in diesem Dialog die Option "Neu" auf der rechten Seite. Fügen Sie nun den Pfad zum .\bin-Verzeichnis ein. Es sollte in etwa so aussehen:

a

  • Stellen Sie sicher, dass Ihr Pfad mit \bin endet und NICHT mit \dconstruct.
  • Klicken Sie in allen geöffneten Dialogen auf "OK".
  • Um zu überprüfen, ob es funktioniert hat, öffnen Sie eine neue Eingabeaufforderung und geben Sie dconstruct --about ein. Sie sollten eine Ausgabe des Programms sehen und keine Fehlermeldung erhalten.

Führen Sie einen Befehl wie diesen in der Befehlszeile aus, um Ihre erste disassemblierte Datei zu generieren:```shell dconstruct my_bin_file.bin

Dies gibt dann eine Datei mit dem Namen `my_bin_file.bin.asm` im selben Verzeichnis wie Ihre Eingabedatei aus. Sie können diese Datei dann mit einem Text-/Code-Editor öffnen. Ich würde die Verwendung von etwas wie VSCode empfehlen, das erweiterte Suchfunktionen bietet und gut mit großen Dateien umgehen kann. Der standardmäßige Windows-Editor wird nicht empfohlen.

Um eine Datei zu dekompilieren, fügen Sie das `--decompile`-Flag beim Ausführen des Befehls hinzu.

# Command line arguments

- `-i` - Eingabedatei oder -ordner. Kann weggelassen werden, wenn der Eingabepfad als erstes Argument übergeben wird.

- `-o` - Ausgabepfad. Wenn Ihr Eingabepfad ein Ordner ist, darf dies keine Datei sein. Wenn keine Ausgabe angegeben wird, wird die .txt-Datei neben der Eingabedatei abgelegt. Wenn die Eingabe ein Ordner ist und keine Ausgabe angegeben wird, erstellt das Programm ein "output"-Verzeichnis im aktuellen Arbeitsverzeichnis und legt alle Dateien darin ab.

- Die sidbase wird aus `sidbase.bin` geladen, das sich neben der ausführbaren Datei befindet.

- `--no_decompile` - gibt keinen dekompilierten Pseudocode in eine .dcpl-Datei aus. Die Datei wird neben der .asm-Datei abgelegt. Standardmäßig ist dies deaktiviert.

- `--no_optimize` - optimiert und bereinigt den dcpl-Code nicht. Beinhaltet das Inlinen von Funktionsaufrufen, das Entfernen ungenutzter Variablen, das Umwandeln kompatibler for-Schleifen in foreach-Schleifen und das Umwandeln einiger if-else-Ketten in match-Ausdrücke.

- `--pascal_case` - wandelt die Funktionsnamen des Spiels in Pascal-Schreibweise in der dcpl-Ausgabe um, z.B. get-boolean -> GetBoolean.

- `--graphs` - gibt .svg-Dateien mit Kontrollflussgraphen für alle dekompilierten Funktionen aus. Jede .bin-Datei erhält einen eigenen Ordner mit all ihren Graphen. Dies **verlangsamt** die Dekompilierungsgeschwindigkeit erheblich, daher wird es nicht empfohlen, wenn Sie eine große Anzahl von Dateien gleichzeitig dekompilieren.

- `--emit_once` - verhindert, dass dieselbe Struktur zweimal in der Disassemblierung ausgegeben wird. Wenn eine Struktur mehrfach vorkommt, wird nur die erste Instanz vollständig ausgegeben, und alle weiteren Vorkommen werden durch ein `ALREADY_EMITTED`-Tag ersetzt. Dies kann die Dateigröße erheblich reduzieren.

- `-e` - eine Bearbeitung vornehmen. Weitere Informationen im folgenden Abschnitt.

- `--edit_file` - eine Bearbeitungsdatei bereitstellen. Eine Bearbeitungsdatei enthält eine Bearbeitung pro Zeile. Es wird dieselbe Syntax wie beim -e-Flag verwendet.

# Was ist ein Disassembler?

Ein [Disassembler](https://en.wikipedia.org/wiki/Disassembler) ist ein Werkzeug, das binäre Anweisungen (auch bekannt als [Bytecode](https://en.wikipedia.org/wiki/Bytecode) oder [Maschinencode](https://en.wikipedia.org/wiki/Machine_code)) liest und jede in eine für Menschen lesbare Version übersetzt, die als [Mnemonic](https://en.wikipedia.org/wiki/Assembly_language#Mnemonics) bezeichnet wird. Disassembler versuchen im Allgemeinen nicht, viel über die Bedeutung dieser Anweisungen zu interpretieren, sondern wandeln sie lediglich 1-1 in ihre lesbaren Versionen um. Zum Beispiel die Anweisungen:```arm
15 00 00 00
4A 01 01 00
43 31 01 00
1C 00 00 01

werden in die folgenden menschenlesbaren Versionen zerlegt:```arm LookupPointer r0, 0 LoadStaticU64Imm r1, 1 Move r49, r1 CallFf r0, r0, 1

Alle Zahlen im Bytecode sind in [hexadezimaler](https://en.wikipedia.org/wiki/hexadecimal) Schreibweise angegeben. Die erste Spalte in jeder Zeile stellt den `Opcode` dar, also den Befehlstyp, der ausgeführt wird. Die nächste Spalte ist das Zielregister, in dem das Ergebnis der Operation gespeichert wird. Die letzten beiden Spalten sind die Operanden 1 und 2, bei denen es sich entweder um Register oder Literalzahlen handelt, auf denen die Operation ausgeführt wird. Nicht alle Befehle nutzen alle 4 Bytes – zum Beispiel benötigt der erste `LookupPointer`-Befehl nur einen Operanden.
Tool herunterladen