Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
datadome-vm-internals — Analyse de la VM personnalisée obfusquée et du format de bytecode de DataDome, révélant le chiffrement de chaînes, les chiffrements par boîte-S et les signaux d'empreinte numérique de navigateur pour l'éducation à la rétro-ingénierie. | Kitploit
Outils/GitHubGitHub/manjustice/datadome-vm-internals
Rétro-ingénierieAnalyse de MalwareAnalyse de BinairesArticles et RechercheApprentissage et ÉducationAnti-Bot
GitHubmanjustice/datadome-vm-internals

datadome-vm-internals

Analyse de la VM personnalisée obfusquée et du format de bytecode de DataDome, révélant le chiffrement de chaînes, les chiffrements par boîte-S et les signaux d'empreinte numérique de navigateur pour l'éducation à la rétro-ingénierie.

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
2757il y a 4 moisVérifié par Kitploit

DataDome VM

DataDome intègre une VM personnalisée dans son bundle pour masquer ce qu'elle fait réellement. Par curiosité, je l'ai démontée. Je la partage ici pour toute personne intéressée par le même type de puzzle de rétro-ingénierie.

DataDome envoie à votre navigateur un bundle JavaScript fortement obscurci. À l'intérieur se trouve une machine virtuelle personnalisée — ils compilent leur logique réelle de collecte d'empreintes sous un format de bytecode privé, puis l'exécutent dans cette VM au moment de l'exécution. Cette analyse porte sur la dernière version au moment de la rédaction.

Aucun code de DataDome n'est inclus dans ce dépôt — seulement ma propre analyse et mes outils.

Veuillez lire la note en bas avant d'utiliser ceci.


Ce qui est intéressant à l'intérieur

Une fois que vous pouvez lire le bytecode, quelques éléments ressortent.

Chiffrement des chaînes. Toutes les chaînes sont stockées dans un seul blob chiffré en haut du bytecode. Chaque chaîne est décodée à l'exécution à l'aide d'une clé XOR par entrée combinée à une graine intégrée dans l'en-tête de la table. Ainsi, même la lecture des octets bruts ne vous apprend rien sans connaître la graine.

Tables S-box partout. Les premiers ~20 Ko du bytecode sont presque entièrement constitués de séquences PUSH_N_IMM + ARRAY_FROM_STACK construisant des tables de correspondance de 256 octets. Ce sont des S-box, probablement pour un chiffrement personnalisé ou des tours AES utilisés pour hacher les signaux collectés avant de les envoyer.

Signaux d'empreinte que vous pouvez réellement voir après avoir décodé les chaînes :

  • Canvas : dessine un rectangle et relit les valeurs des pixels
  • WebGL : le code source complet du shader se trouve en texte clair une fois décodé
  • Timing : essentiellement la timeline complète de navigation
  • Mémoire : utilisation actuelle du tas JS
  • Écran : dimensions et rapport de pixels
  • Astuces DOM : injecte des éléments cachés pour mesurer le rendu des polices et la mise en page
  • Détection d'automatisation : le classique webdriver

NOTE

Ce projet existe uniquement pour satisfaire la curiosité sur le fonctionnement pratique de l'obscurcissement par VM personnalisée. C'est un exercice d'apprentissage en rétro-ingénierie, pas un outil pour contourner la détection de bots.

Ce que vous faites de ces connaissances est de votre responsabilité.

Télécharger l’outil