Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
datadome-vm-internals — Анализ кастомной обфусцированной виртуальной машины и формата байт-кода DataDome, раскрывающий шифрование строк, S-блочные шифры и сигнатуры браузерного fingerprinting для обучения реверс-инжинирингу. | Kitploit
Инструменты/GitHubGitHub/manjustice/datadome-vm-internals
Обратная инженерияАнализ вредоносных программАнализ Бинарных ФайловСтатьи и ИсследованияОбучение и ОбразованиеАнти-Бот
GitHubmanjustice/datadome-vm-internals

datadome-vm-internals

Анализ кастомной обфусцированной виртуальной машины и формата байт-кода DataDome, раскрывающий шифрование строк, S-блочные шифры и сигнатуры браузерного fingerprinting для обучения реверс-инжинирингу.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
2754 месяцев назадПроверено Kitploit

DataDome VM

DataDome встраивает собственную виртуальную машину в свой бандл, чтобы скрыть, что они на самом деле делают. Мне стало любопытно, и я разобрал её. Делюсь здесь для всех, кто интересуется подобными головоломками по реверс-инжинирингу.

DataDome отправляет в ваш браузер сильно обфусцированный JavaScript-бандл. Внутри него находится собственная виртуальная машина — они компилируют свою настоящую логику снятия отпечатков в частный байткод-формат, а затем выполняют его внутри этой ВМ во время выполнения. Это анализ последней версии на момент написания.

Никакой код DataDome не включён в этот репозиторий — только мой собственный анализ и инструменты.

Пожалуйста, прочитайте примечание внизу перед использованием.


Что интересного внутри

Когда вы можете читать байткод, выделяются несколько вещей.

Шифрование строк. Все строки хранятся в одном зашифрованном блоке в начале байткода. Каждая строка декодируется во время выполнения с помощью индивидуального XOR-ключа в сочетании с seed-значением, встроенным в заголовок таблицы. Так что даже чтение сырых байтов ничего вам не скажет без знания seed-значения.

Таблицы S-boxes повсюду. Первые ~20 КБ байткода почти полностью состоят из последовательностей PUSH_N_IMM + ARRAY_FROM_STACK, строящих таблицы поиска размером 256 байт. Это S-boxes, вероятно, для собственного шифра или раундов AES, используемых для хеширования собранных сигналов перед отправкой.

Сигналы снятия отпечатков, которые вы можете увидеть после декодирования строк:

  • Canvas: рисует прямоугольник и считывает значения пикселей
  • WebGL: полный исходный код шейдера находится там в открытом тексте после декодирования
  • Timing: по сути полная временная шкала навигации
  • Memory: текущее использование JS-кучи
  • Screen: размеры и коэффициент пикселей
  • DOM трюки: внедряет скрытые элементы для измерения рендеринга шрифтов и макета
  • Проверка автоматизации: классическая веб-драйвер

ПРИМЕЧАНИЕ

Этот проект существует исключительно для удовлетворения любопытства о том, как работает обфускация на основе собственной виртуальной машины на практике. Это учебное упражнение по реверс-инжинирингу, а не инструмент для обхода обнаружения ботов.

Что вы делаете с этими знаниями — это ваша ответственность.

Скачать инструмент