Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
datadome-vm-internals — DataDome의 커스텀 난독화된 VM 및 바이트코드 형식 분석: 리버스 엔지니어링 교육을 위한 문자열 암호화, S-box 암호, 브라우저 핑거프린팅 신호 공개 | Kitploit
도구/GitHubGitHub/manjustice/datadome-vm-internals
Reverse EngineeringMalware AnalysisBinary AnalysisPapers & ResearchLearning & EducationAnti-Bot
GitHubmanjustice/datadome-vm-internals

datadome-vm-internals

DataDome의 커스텀 난독화된 VM 및 바이트코드 형식 분석: 리버스 엔지니어링 교육을 위한 문자열 암호화, S-box 암호, 브라우저 핑거프린팅 신호 공개

저장소 보기
2754개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

DataDome VM

DataDome은 번들에 커스텀 VM을 내장하여 실제로 수행하는 작업을 숨깁니다. 호기심이 생겨 분석해 보았습니다. 동일한 종류의 리버스 엔지니어링 퍼즐에 관심이 있는 사람을 위해 여기에 공유합니다.

DataDome은 심하게 난독화된 JavaScript 번들을 브라우저로 전송합니다. 그 안에는 커스텀 가상 머신이 있습니다. 실제 핑거프린팅 로직을 비공개 바이트코드 형식으로 컴파일한 다음 런타임에 해당 VM 내에서 실행합니다. 이 분석은 작성 시점의 최신 버전을 기준으로 합니다.

이 저장소에는 DataDome 코드가 포함되어 있지 않습니다. 제 분석과 도구만 있습니다.

사용하기 전에 하단의 참고 사항을 꼭 읽어 주세요.


내부에 흥미로운 점

바이트코드를 읽을 수 있게 되면 몇 가지 눈에 띄는 것들이 있습니다.

문자열 암호화. 모든 문자열은 바이트코드 상단에 있는 단일 암호화된 블롭에 저장됩니다. 각 문자열은 테이블 헤더에 내장된 시드와 결합된 항목별 XOR 키를 사용하여 런타임에 디코딩됩니다. 따라서 시드를 모르면 원시 바이트를 읽어도 아무 것도 알 수 없습니다.

S-box 테이블이 모든 곳에 있습니다. 바이트코드의 처음 ~20KB는 거의 전부 PUSH_N_IMM + ARRAY_FROM_STACK 시퀀스로 256바이트 조회 테이블을 구성합니다. 이는 S-box로, 수집된 신호를 전송하기 전에 해싱하는 데 사용되는 사용자 정의 암호 또는 AES 라운드에 사용될 가능성이 높습니다.

문자열을 디코딩한 후 실제로 볼 수 있는 핑거프린팅 신호:

  • Canvas: 사각형을 그리고 픽셀 값을 다시 읽어옵니다.
  • WebGL: 전체 셰이더 소스가 디코딩되면 일반 텍스트로 그대로 있습니다.
  • Timing: 기본적으로 전체 탐색 타임라인입니다.
  • Memory: 현재 JS 힙 사용량입니다.
  • Screen: 화면 크기와 픽셀 비율입니다.
  • DOM tricks: 숨겨진 요소를 삽입하여 글꼴 렌더링과 레이아웃을 측정합니다.
  • Automation check: 고전적인 webdriver 검사입니다.

참고 사항

이 프로젝트는 순전히 커스텀 VM 난독화가 실제로 어떻게 작동하는지에 대한 호기심을 충족시키기 위해 존재합니다. 리버스 엔지니어링을 배우는 연습일 뿐, 봇 탐지를 우회하기 위한 도구가 아닙니다.

이 지식을 어떻게 사용할지는 여러분의 책임입니다.

도구 다운로드