Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
View8 — Descompila bytecode V8 serializado (arquivos JSC) em código legível de alto nível semelhante a JavaScript, com suporte para múltiplas versões do V8, saída em árvore e nomenclatura determinística de funções para análise de malware. | Kitploit
Ferramentas/GitHubGitHub/suleram/view8
Análise EstáticaAnálise de VulnerabilidadesEngenharia ReversaAnálise de MalwareAnálise de Binários
GitHubsuleram/view8

View8

Descompila bytecode V8 serializado (arquivos JSC) em código legível de alto nível semelhante a JavaScript, com suporte para múltiplas versões do V8, saída em árvore e nomenclatura determinística de funções para análise de malware.

Ver Repositório
3846087há 2 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

View8

View8 é uma ferramenta de análise estática projetada para descompilar objetos de bytecode V8 serializados (arquivos JSC) em código legível de alto nível. Para analisar e desmontar esses objetos serializados, o View8 utiliza um binário V8 compilado com patch. Como resultado, o View8 produz uma saída textual semelhante a JavaScript.

Requisitos

  • Python 3.x
  • Binário do desmontador. Versões disponíveis:
    • Versão V8 9.4.146.24 (usada no Node V16.x)
    • Versão V8 10.2.154.26 (usada no Node V18.x)
    • Versão V8 11.3.244.8 (usada no Node V20.x)

Para versões compiladas, visite a página de lançamentos.

Uso

Argumentos de Linha de Comando

  • --inp, -i: O nome do arquivo de entrada.
  • --out, -o: Caminho para a saída. Dependendo das opções selecionadas, a saída pode ser um único arquivo ou uma árvore de diretórios.
  • --input_format, -f: Especifica o formato de entrada. As opções são:
    • raw: a entrada é um arquivo JSC bruto.
    • disassembled: o arquivo de entrada já está desmontado.
    • serialized: a entrada já está descompilada e armazenada em um formato serializado. O formato serializado atual é o pickle do Python; use apenas entrada confiável.
  • --export_format, -e: Especifica o(s) formato(s) de exportação. As opções são v8_opcode, translated, decompiled e serialized. Várias opções podem ser combinadas. Padrão: decompiled.
  • --path, -p: Caminho para o binário do desmontador. Necessário se a entrada estiver no formato bruto e o View8 não conseguir localizar automaticamente o desmontador correspondente.
  • --scope: Propaga argumentos de escopo. Padrão: 1.
  • --normalize: Substitui identificadores de função derivados de endereços por nomes determinísticos baseados na ordem de análise.
  • --normalize-map [CSV]: Ao usar --normalize, grava um CSV mapeando cada nome de função original para seu nome normalizado. Quando o caminho é omitido, o View8 deriva <output>.name_map.csv de --out, ou de --inp quando nenhum caminho de saída é definido.
  • --tree, -t: Divide a saída em uma estrutura de árvore em vez de armazenar todas as funções em um único arquivo. Especifique a função que será usada como raiz da árvore. Para começar pela função principal padrão, use start.
  • --split_mode: Modo de divisão da árvore. As opções são declarers, calls e references. Padrão: declarers.
  • --inline_depth, -d: Nos modos calls e references, inclui funções alcançáveis a partir da raiz da árvore selecionada até a profundidade N no arquivo principal da árvore. Profundidade 0 significa apenas a raiz selecionada; profundidade 1 inclui chamadas/referências diretas; profundidade 2 inclui seus filhos. Não é usado com declarers.
  • --inline_branch_limit, -l: No modo de árvore, incorpora ramificações filhas completas com no máximo N funções no arquivo principal da árvore quando as ramificações filhas são incluídas por --inline_depth. Ramificações maiores são salvas separadamente.
  • --split_depth: Nos modos calls e references, limita a profundidade em que as ramificações de uso exportadas são percorridas. Padrão: 4.
  • --include, -n: Arquivo contendo funções a serem incluídas na saída.
  • --exclude, -x: Arquivo contendo funções a serem excluídas da saída.
  • --func: Exibe uma função selecionada.
  • --show_all: No modo de exibição de função, também mostra linhas marcadas como ocultas.
  • --verbosity, -v: Nível de verbosidade. Intervalo aceito: 0 a 3.

Uso Básico

Para descompilar um arquivo de bytecode V8 e exportar o código descompilado:

python view8.py -i input_file -o output_file

Caminho do Desmontador

Por padrão, o View8 detecta a versão do bytecode V8 do arquivo de entrada usando VersionDetector.exe e procura automaticamente um binário de desmontador compatível na pasta Bin. Isso pode ser alterado especificando um binário de desmontador diferente com a opção --path ou -p:

python view8.py -i input_file -o output_file --path /caminho/para/desmontador

Processando Arquivos Desmontados

Para pular o processo de desmontagem e fornecer um arquivo já desmontado como entrada, use a opção --input_format disassembled ou -f disassembled:

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

Nomes de Função Determinísticos e CSV de Mapeamento

Use --normalize para substituir nomes de função derivados de endereços por identificadores determinísticos. Para preservar a relação entre os nomes originais e normalizados, adicione --normalize-map:

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

Isso grava decompiled/sample.dec.name_map.csv com as seguintes colunas:

original_name,normalized_name
func_start_0x268514e9dcd9,func_start_0x100000000
func_rne_0x268514eb0779,func_rne_0x100000001

Um caminho CSV explícito também pode ser fornecido:

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

Criando e Processando Arquivos Serializados

Às vezes é útil descompilar o arquivo em um formato serializado que preserve os objetos e estruturas analisados. Esse tipo de saída pode ser mais fácil de pós-processar do que um formato de texto, por exemplo, durante uma desofuscação adicional. Para criar uma saída serializada, use o formato de exportação serialized:

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

Aviso de segurança: o formato serializado atual é um arquivo pickle do Python (.pkl). Deserializar dados de fontes não confiáveis pode executar código arbitrário. Carregue apenas arquivos serializados que você mesmo gerou.

Para carregar uma saída serializada de volta e exportá-la em outro formato, use --input_format serialized ou -f serialized:

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

Formatos de Exportação

Especifique o(s) formato(s) de exportação usando a opção --export_format ou -e. Você pode combinar vários formatos:

  • v8_opcode
  • translated
  • decompiled
  • serialized
Baixar ferramenta