Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
datadome-vm-internals — Análisis de la máquina virtual ofuscada y el formato de bytecode personalizados de DataDome, revelando cifrado de cadenas, cifrados S-box y señales de fingerprinting del navegador para educación en ingeniería inversa. | Kitploit
Herramientas/GitHubGitHub/manjustice/datadome-vm-internals
Ingeniería InversaAnálisis de MalwareAnálisis de BinariosPapers e InvestigaciónAprendizaje y EducaciónAnti-Bot
GitHubmanjustice/datadome-vm-internals

datadome-vm-internals

Análisis de la máquina virtual ofuscada y el formato de bytecode personalizados de DataDome, revelando cifrado de cadenas, cifrados S-box y señales de fingerprinting del navegador para educación en ingeniería inversa.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
27519hace 5 mesesRevisado por Kitploit

DataDome VM

DataDome incorpora una MV personalizada en su paquete para ocultar lo que realmente hace. Tuve curiosidad y la desarmé. Lo comparto aquí para cualquiera que esté interesado en el mismo tipo de rompecabezas de ingeniería inversa.

DataDome envía a tu navegador un paquete JavaScript muy ofuscado. Dentro, hay una máquina virtual personalizada: compilan su lógica real de fingerprinting en un formato de bytecode privado y luego lo ejecutan dentro de esa MV en tiempo de ejecución. Este análisis corresponde a la última versión en el momento de escribir esto.

En este repositorio no se incluye ningún código de DataDome, solo mi propio análisis y herramientas.

Por favor, lee la nota al final antes de usar esto.


Lo interesante que hay dentro

Una vez que puedes leer el bytecode, destacan algunas cosas.

Cifrado de cadenas. Todas las cadenas se almacenan en un solo blob cifrado al principio del bytecode. Cada cadena se decodifica en tiempo de ejecución usando una clave XOR por entrada combinada con una semilla incorporada en el encabezado de la tabla. Así que incluso leer los bytes en bruto no te dice nada sin conocer la semilla.

Tablas S-box por todas partes. Los primeros ~20KB de bytecode son casi completamente secuencias de PUSH_N_IMM + ARRAY_FROM_STACK que construyen tablas de búsqueda de 256 bytes. Estas son S-boxes, probablemente para un cifrado personalizado o rondas AES usadas para hacer hash de las señales recogidas antes de enviarlas.

Señales de fingerprinting que realmente se pueden ver después de decodificar las cadenas:

  • Canvas: dibuja un rectángulo y lee los valores de píxeles
  • WebGL: el código fuente completo del shader está ahí en texto plano una vez decodificado
  • Temporización: básicamente la línea de tiempo completa de navegación
  • Memoria: uso actual del montón de JS
  • Pantalla: dimensiones y relación de píxeles
  • Trucos DOM: inyecta elementos ocultos para medir el renderizado de fuentes y el diseño
  • Verificación de automatización: el clásico webdriver

NOTA

Este proyecto existe puramente para satisfacer la curiosidad sobre cómo funciona la ofuscación con MV personalizada en la práctica. Es un ejercicio de aprendizaje en ingeniería inversa, no una herramienta para evadir la detección de bots.

Lo que hagas con este conocimiento es tu responsabilidad.

Descargar herramienta