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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
View8 — Dekompiliert serialisierten V8-Bytecode (JSC-Dateien) in hochwertigen, lesbaren JavaScript-ähnlichen Code, mit Unterstützung für mehrere V8-Versionen, Baumausgabe und deterministischer Funktionsbenennung für die Malware-Analyse. | Kitploit
Tools/GitHubGitHub/suleram/view8
Statische AnalyseSchwachstellenanalyseReverse EngineeringMalware-AnalyseBinäranalyse
GitHubsuleram/view8

View8

Dekompiliert serialisierten V8-Bytecode (JSC-Dateien) in hochwertigen, lesbaren JavaScript-ähnlichen Code, mit Unterstützung für mehrere V8-Versionen, Baumausgabe und deterministischer Funktionsbenennung für die Malware-Analyse.

Repository anzeigen
3846087vor 2 MonatenVon 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

View8

View8 ist ein statisches Analysetool, das dazu entwickelt wurde, serialisierte V8-Bytecode-Objekte (JSC-Dateien) in hochwertigen, lesbaren Code zu dekompilieren. Um diese serialisierten Objekte zu parsen und zu disassemblieren, verwendet View8 eine gepatchte, kompilierte V8-Binärdatei. Dadurch erzeugt View8 eine textuelle Ausgabe, die JavaScript ähnelt.

Anforderungen

  • Python 3.x
  • Disassembler-Binärdatei. Verfügbare Versionen:
    • V8-Version 9.4.146.24 (verwendet in Node V16.x)
    • V8-Version 10.2.154.26 (verwendet in Node V18.x)
    • V8-Version 11.3.244.8 (verwendet in Node V20.x)

Für kompilierte Versionen besuchen Sie die Releases-Seite.

Verwendung

Kommandozeilenargumente

  • --inp, -i: Der Name der Eingabedatei.
  • --out, -o: Pfad zur Ausgabe. Abhängig von den gewählten Optionen kann die Ausgabe eine einzelne Datei oder eine Verzeichnisstruktur sein.
  • --input_format, -f: Gibt das Eingabeformat an. Optionen sind:
    • raw: Die Eingabe ist eine rohe JSC-Datei.
    • disassembled: Die Eingabedatei ist bereits disassembliert.
    • serialized: Die Eingabe ist bereits dekompiliert und in einem serialisierten Format gespeichert. Das aktuelle serialisierte Format ist Python pickle; verwenden Sie nur vertrauenswürdige Eingaben.
  • --export_format, -e: Gibt das/die Exportformat(e) an. Optionen sind v8_opcode, translated, decompiled und serialized. Mehrere Optionen können kombiniert werden. Standard: decompiled.
  • --path, -p: Pfad zur Disassembler-Binärdatei. Erforderlich, wenn die Eingabe im Raw-Format vorliegt und View8 den passenden Disassembler nicht automatisch finden kann.
  • --scope: Bereichsargumente propagieren. Standard: 1.
  • --normalize: Ersetzt adressbasierte Funktionsbezeichner durch deterministische Namen, die auf der Parse-Reihenfolge basieren.
  • --normalize-map [CSV]: Schreibt bei Verwendung von --normalize eine CSV-Zuordnung von jedem ursprünglichen Funktionsnamen zu seinem normalisierten Namen. Wenn der Pfad weggelassen wird, leitet View8 <output>.name_map.csv aus --out ab, oder aus --inp, wenn kein Ausgabepfad festgelegt ist.
  • --tree, -t: Teilt die Ausgabe in eine Baumstruktur auf, anstatt alle Funktionen in einer Datei zu speichern. Geben Sie die Funktion an, die als Baumwurzel verwendet werden soll. Um mit der standardmäßigen Hauptfunktion zu beginnen, verwenden Sie start.
  • --split_mode: Baum-Aufteilungsmodus. Optionen sind declarers, calls und references. Standard: declarers.
  • --inline_depth, -d: In den Modi calls und references werden Funktionen, die von der gewählten Baumwurzel bis zur Tiefe N erreichbar sind, in die Hauptbaumdatei aufgenommen. Tiefe 0 bedeutet nur die gewählte Wurzel; Tiefe 1 umfasst direkte Aufgerufene/Referenzen; Tiefe 2 umfasst deren Kinder. Wird nicht mit declarers verwendet.
  • --inline_branch_limit, -l: Im Baummodus werden vollständige untergeordnete Zweige mit höchstens N Funktionen in die Hauptbaumdatei eingefügt, wenn untergeordnete Zweige durch --inline_depth eingeschlossen werden. Größere Zweige werden separat gespeichert.
  • --split_depth: In den Modi calls und references wird begrenzt, wie tief exportierte Nutzungszweige durchlaufen werden. Standard: 4.
  • --include, -n: Datei, die Funktionen enthält, die in die Ausgabe aufgenommen werden sollen.
  • --exclude, -x: Datei, die Funktionen enthält, die von der Ausgabe ausgeschlossen werden sollen.
  • --func: Zeigt eine ausgewählte Funktion an.
  • --show_all: Zeigt im Funktionsanzeigemodus auch Zeilen an, die als verborgen markiert sind.
  • --verbosity, -v: Ausführlichkeitsgrad. Akzeptierter Bereich: 0 bis 3.

Grundlegende Verwendung

Um eine V8-Bytecode-Datei zu dekompilieren und den dekompilierten Code zu exportieren:

python view8.py -i input_file -o output_file

Disassembler-Pfad

Standardmäßig erkennt View8 die V8-Bytecode-Version der Eingabedatei mit VersionDetector.exe und sucht automatisch nach einer kompatiblen Disassembler-Binärdatei im Ordner Bin. Dies kann geändert werden, indem Sie mit der Option --path oder -p eine andere Disassembler-Binärdatei angeben:

python view8.py -i input_file -o output_file --path /path/to/disassembler

Verarbeitung disassemblierter Dateien

Um den Disassemblierungsprozess zu überspringen und eine bereits disassemblierte Datei als Eingabe bereitzustellen, verwenden Sie die Option --input_format disassembled oder -f disassembled:

python view8.py -i input_file -o output_file -f disassembled

Deterministische Funktionsnamen und Mapping-CSV

Verwenden Sie --normalize, um adressbasierte Funktionsnamen durch deterministische Bezeichner zu ersetzen. Um die Beziehung zwischen den ursprünglichen und normalisierten Namen zu bewahren, fügen Sie --normalize-map hinzu:

python view8.py \
  --input_format disassembled \
  --inp sample.jsc.disasm.txt \
  --normalize \
  --normalize-map \
  --out decompiled/sample.dec.txt \
  --export_format decompiled serialized

Dies schreibt decompiled/sample.dec.name_map.csv mit den folgenden Spalten:

original_name,normalized_name
func_start_0x268514e9dcd9,func_start_0x100000000
func_rne_0x268514eb0779,func_rne_0x100000001

Ein expliziter CSV-Pfad kann ebenfalls angegeben werden:

python view8.py \
  --input_format disassembled \
  --inp sample.jsc.disasm.txt \
  --normalize \
  --normalize-map mappings/sample.names.csv \
  --out decompiled/sample.dec.txt

Erstellen und Verarbeiten serialisierter Dateien

Manchmal ist es nützlich, die Datei in ein serialisiertes Format zu dekompilieren, das die geparsten Objekte und Strukturen bewahrt. Diese Art der Ausgabe kann einfacher nachzuverarbeiten sein als ein Textformat, beispielsweise während einer weiteren Entschleierung. Um eine serialisierte Ausgabe zu erstellen, verwenden Sie das Exportformat serialized:

python view8.py -i input_file -o output_file -e serialized

Sicherheitswarnung: Das aktuelle serialisierte Format ist eine Python-pickle-Datei (.pkl). Das Entpacken von Daten aus nicht vertrauenswürdigen Quellen kann beliebigen Code ausführen. Laden Sie nur serialisierte Dateien, die Sie selbst erstellt haben.

Um eine serialisierte Ausgabe zurückzuladen und in einem anderen Format zu exportieren, verwenden Sie --input_format serialized oder -f serialized:

python view8.py -i input_file -o output_file -f serialized
Tool herunterladen