View8 ist ein statisches Analysetool, das serialisierte V8-Bytecode-Objekte (JSC-Dateien) in lesbare Code auf hohem Niveau dekompilieren soll. Um diese serialisierten Objekte zu analysieren und zu zerlegen, verwendet View8 einen gepatpften kompilierten V8 -Binärer. Infolgedessen erzeugt View8 eine textuelle Ausgabe, die JavaScript ähnelt.
9.4.146.24 (verwendet im Knoten v16.x)10.2.154.26 (verwendet im Knoten v18.x)11.3.244.8 (verwendet im Knoten v20.x)Für kompilierte Versionen besuchen Sie die Seite "Releases".
input_file : Der Name der Eingabedatei.output_file : Der Name der Ausgabedatei.--path , -p : Pfad zum Disassembler binären (optional).--disassembled , -d : Geben Sie an, ob die Eingabedatei bereits zerlegt ist (optional).--export_format , -e : Geben Sie das Exportformat (en) an. Optionen sind v8_opcode , translated und decompiled . Mehrere Optionen können kombiniert werden (optional, Standard: decompiled ).So kompilieren Sie eine V8 -Bytecode -Datei und exportieren Sie den dekompilierten Code:
python view8.py input_file output_file Standardmäßig erkennt view8 die V8 -Bytecode -Version der Eingabedatei (mit VersionDetector.exe ) und sucht automatisch nach einem kompatiblen Disassembler -Binärer im Bin -Ordner. Dies kann geändert werden, indem ein anderer Binärdisassembler -Binärer angegeben wird. Verwenden Sie die Option --path (oder -p ):
python view8.py input_file output_file --path /path/to/disassembler Verwenden Sie das Flag --disassembled (oder -d ), um den Disassembling -Prozess zu überspringen und eine bereits zerlegte Datei als Eingabe zu liefern:
python view8.py input_file output_file --disassembled Geben Sie das Exportformat (n) mit der Option --export_format (oder -e ) an. Sie können mehrere Formate kombinieren:
v8_opcodetranslateddecompiledZum Beispiel, um sowohl V8 -Opcodes als auch dekompilierte Code nebeneinander zu exportieren:
python view8.py input_file output_file -e v8_opcode decompiled Standardmäßig wird das verwendete Format decompiled .
Die V8 -Bytecode -Version wird zu Beginn der Datei als Hash gespeichert. Im Folgenden finden Sie die Optionen für VersionDetector.exe :
-h : Ruft eine Version ab und gibt ihren Hash zurück.-d : Ruft einen Hash (Little-Endian) ab und gibt seine entsprechende Version mit Brute Force zurück.-f : Ruft eine Datei ab und gibt ihre Version zurück.