Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
datadome-vm-internals — Análise da VM ofuscada personalizada e formato de bytecode do DataDome, revelando criptografia de strings, cifras S-box e sinais de fingerprinting de navegador para educação em engenharia reversa. | Kitploit
Ferramentas/GitHubGitHub/manjustice/datadome-vm-internals
Engenharia ReversaAnálise de MalwareAnálise de BináriosPapers e PesquisaAprendizado e EducaçãoAnti-Bot
GitHubmanjustice/datadome-vm-internals

datadome-vm-internals

Análise da VM ofuscada personalizada e formato de bytecode do DataDome, revelando criptografia de strings, cifras S-box e sinais de fingerprinting de navegador para educação em engenharia reversa.

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 →
Ver Repositório
2757há 4 mesesRevisado pelo Kitploit
Compartilhar

DataDome VM

A DataDome incorpora uma VM personalizada em seu pacote para esconder o que eles realmente estão fazendo. Fiquei curioso e a desmontei. Compartilhando aqui para quem estiver interessado no mesmo tipo de quebra-cabeça de engenharia reversa.

A DataDome envia um pacote JavaScript altamente ofuscado para o seu navegador. Dentro dele, há uma máquina virtual personalizada — eles compilam sua lógica real de fingerprinting em um formato privado de bytecode e a executam dentro dessa VM em tempo de execução. Esta análise da versão mais recente no momento da escrita.

Nenhum código da DataDome está incluído neste repositório — apenas minha própria análise e ferramentas.

Por favor, leia a nota no final antes de usar isso.


O que é interessante por dentro

Uma vez que você consegue ler o bytecode, algumas coisas se destacam.

Criptografia de strings. Todas as strings são armazenadas em um único blob criptografado no topo do bytecode. Cada string é decodificada em tempo de execução usando uma chave XOR por entrada combinada com uma semente embutida no cabeçalho da tabela. Então, mesmo ler os bytes brutos não lhe diz nada sem conhecer a semente.

Tabelas S-box por toda parte. Os primeiros ~20KB de bytecode são quase inteiramente sequências de PUSH_N_IMM + ARRAY_FROM_STACK construindo tabelas de consulta de 256 bytes. Estas são S-boxes, provavelmente para uma cifra personalizada ou rodadas AES usadas para fazer hash dos sinais coletados antes de enviá-los.

Sinais de fingerprinting que você realmente pode ver após decodificar as strings:

  • Canvas: desenha um retângulo e lê os valores dos pixels
  • WebGL: o código fonte completo do shader está lá em texto simples uma vez decodificado
  • Timing: basicamente a linha do tempo completa de navegação
  • Memory: uso atual do heap do JS
  • Screen: dimensões e proporção de pixels
  • DOM tricks: injeta elementos ocultos para medir renderização de fonte e layout
  • Automation check: o clássico webdriver

NOTA

Este projeto existe puramente para satisfazer a curiosidade sobre como a ofuscação de VM personalizada funciona na prática. É um exercício de aprendizado em engenharia reversa, não uma ferramenta para contornar a detecção de bots.

O que você faz com esse conhecimento é por sua conta.

Baixar ferramenta