홈으로 돌아가기

DNS를 통한 Doom: 파일 없이 실행

Doom Over DNS 프로젝트는 Cloudflare TXT 레코드에 대한 공용 DNS 쿼리를 통해서만 Doom의 shareware 버전을 실행할 수 있게 합니다. 압축된 WAD는 프래그먼트로 분할되어 디스크에 쓰지 않고 PowerShell 메모리에 로드됩니다. 재개 및 유료 존으로의 확장을 지원합니다.

디스크 없이 DNS 쿼리로 Doom 플레이
Advertisement 728x90

# DNS로 둠 실행: DNS 레코드로 클래식 슈터 띄우기

개발자 Adam Rice는 Cloudflare의 DNS TXT 레코드만을 이용해 Doom의 shareware 버전을 실행하는 기능을 구현했습니다. 게임은 1964개의 프래그먼트로 압축되어 공개 DNS 쿼리를 통해 로드되며, 디스크에 WAD 파일을 저장하지 않고 PowerShell 7에서 실행됩니다. .NET 게임 엔진 DLL은 메모리에 직접 로드됩니다. 이 프로젝트는 DNS를 바이너리 데이터 전송 수단으로 활용해 파일 저장 제한을 우회합니다.

설치 및 실행

실행하려면 PowerShell 7과 DNS 존을 편집할 수 있는 권한의 Cloudflare API 토큰이 필요합니다.

  • PowerShell 7 설치: winget install Microsoft.PowerShell
  • Cloudflare 자격 증명 설정: TXTRecords 모듈을 사용하고 Set-CFCredential 명령어를 실행하세요.
  • 게임 실행: \.\Start-DoomOverDNS.ps1 -PrimaryZone 'example.com'

스크립트는 Resolve-DNSName을 통해 데이터를 자동으로 로드합니다. 무료 Cloudflare 존은 185개 프래그먼트를 수용할 수 있으며, Pro/Business/Enterprise는 최대 3400개를 지원합니다. WAD 파일은 약 1199개 프래그먼트가 필요합니다.

Google AdInline article slot
# 무료 계정용 여러 존을 사용한 실행 예시
.\Start-DoomOverDNS.ps1 -Zones @('zone1.com', 'zone2.com', 'zone3.com')

DNS 존에 데이터 배치

프로젝트는 압축된 WAD를 TXT 레코드로 분할합니다. 무료 계정의 경우 여러 도메인이 필요하며, 모듈이 프래그먼트를 자동으로 분배합니다. Pro 존이라면 전체 게임이 들어갑니다.

다운로드 재개:

  • Publish-TXTStripe -Resume 명령어는 프래그먼트 해시를 확인합니다.
  • 마지막 유효 블록부터 이어서 불필요한 재전송을 피합니다.

TXT 레코드 제한(RFC 1035)은 무시됩니다. DNS는 Cloudflare의 엣지 노드에서 글로벌 캐싱을 지원하는 분산 저장소로 사용됩니다.

Google AdInline article slot

| Zone Type | Fragments | Enough for Doom |

|-----------|-----------|-----------------|

| Free | 185 | No (need 7+ zones) |

Google AdInline article slot

| Pro | 3400 | Yes (full game) |

압축 및 압축 해제의 기술적 세부 사항

WAD 파일은 TXT 레코드 크기를 최소화하기 위해 압축됩니다. PowerShell 스크립트는 실행 중에 데이터를 실시간으로 압축 해제합니다. 로컬 저장소는 사용하지 않으며, 모든 작업이 메모리에서 이뤄집니다.

TXTRecords 모듈의 주요 구성 요소:

  • Publish-TXTStripe: 재개 지원을 포함한 프래그먼트 게시.
  • Set-CFCredential: API 토큰 설정.
  • 공개 쿼리를 위한 Resolve-DNSName 통합.

이 프로젝트는 일반적인 프로토콜 제한을 우회하며 DNS의 임의 바이너리 데이터 전송 가능성을 보여줍니다.

핵심 사항

  • 디스크에 파일 없이 Doom 실행: DNS TXT에서 WAD와 DLL을 메모리에 로드.
  • WAD에 약 1199개 프래그먼트 필요; 무료 Cloudflare 존은 185개.
  • 프래그먼트 해시로 다운로드 재개 지원.
  • PowerShell 7과 공개 DNS 쿼리 사용, 별도 서버 불필요.
  • Pro 계정으로 확장: 하나의 존으로 전체 게임 가능.

— Editorial Team

Advertisement 728x90

다음 읽기