View8 es una herramienta de análisis estático diseñada para descompilar objetos serializados de Bytecode (archivos JSC) en un código legible de alto nivel. Para analizar y desmontar estos objetos serializados, View8 utiliza un binario V8 compilado parcheado. Como resultado, View8 produce una salida textual similar a JavaScript.
9.4.146.24 (utilizado en el nodo v16.x)10.2.154.26 (utilizado en el nodo v18.x)11.3.244.8 (utilizado en el nodo V20.X)Para versiones compiladas, visite la página de versiones.
input_file : el nombre del archivo de entrada.output_file : el nombre del archivo de salida.--path , -p : Path to Disapsembler Binary (opcional).--disassembled , -d : indique si el archivo de entrada ya está desmontado (opcional).--export_format , -e : especifique los formatos de exportación. Las opciones son v8_opcode , translated y decompiled . Se pueden combinar varias opciones (opcional, predeterminada: decompiled ).Para descompilar un archivo de Bytecode V8 y exportar el código descompilado:
python view8.py input_file output_file De forma predeterminada, view8 detecta la versión V8 Bytecode del archivo de entrada (usando VersionDetector.exe ) y busca automáticamente un binario desensamblador compatible en la carpeta Bin . Esto se puede cambiar especificando un binario desensamblador diferente, use la opción --path (o -p ):
python view8.py input_file output_file --path /path/to/disassembler Para omitir el proceso de desmontaje y proporcionar un archivo ya desmontado como entrada, use el indicador --disassembled (o -d ):
python view8.py input_file output_file --disassembled Especifique los formatos de exportación utilizando la opción --export_format (o -e ). Puede combinar múltiples formatos:
v8_opcodetranslateddecompiledPor ejemplo, para exportar los códigos de operación V8 y el código descompilado uno al lado del otro:
python view8.py input_file output_file -e v8_opcode decompiled Por defecto, el formato utilizado se decompiled .
La versión de Bytecode V8 se almacena como un hash al comienzo del archivo. A continuación se muestran las opciones disponibles para VersionDetector.exe :
-h : Recupera una versión y devuelve su hash.-d : Recupera un hash (Little-Endian) y devuelve su versión correspondiente usando la fuerza bruta.-f : Recupera un archivo y devuelve su versión.