TECH 으로 돌아가기
TECH HACKER NEWS 어제 7분 읽기 34 READS

추억의 CD-ROM 게임을 되살리는 법: Macromedia Director 복사 방지 뜯어보기

추억의 CD-ROM 게임을 되살리는 법: Macromedia Director 복사 방지 뜯어보기
SOURCE IMAGE · HACKER NEWS
추억의 CD-ROM 게임을 되살리는 법: Macromedia Director 복사 방지 뜯어보기

2000년대 초반 PC 게임, 지금도 실행되나요?

90년대 후반부터 2000년대 초반까지 학습용 CD나 잡지 부록 CD로 게임을 해보신 분들 많으실 거예요. 그 시절 교육용 타이틀, 어드벤처 게임, 인터랙티브 동화책 상당수가 Macromedia Director로 만들어졌어요. 그런데 이 게임들을 지금 윈도우 11이나 최신 맥에서 돌려보면 대부분 실행조차 안 돼요. 이번 글은 ImHex라는 헥스 에디터를 만든 개발자 WerWolv가 옛 Director 게임을 요즘 하드웨어에서 다시 돌리려고 복사 방지(copy protection) 장치를 분석하고 우회한 과정을 기록한 글이에요.

Macromedia Director가 뭐냐면

Director는 지금으로 치면 인터랙티브 콘텐츠 제작 툴이에요. 타임라인 위에 이미지, 소리, 애니메이션을 배치하고, Lingo라는 스크립트 언어로 상호작용을 붙이는 방식이죠. 영화 촬영에 빗대서 무대(Stage), 배우(Cast), 악보(Score) 같은 이름으로 구성돼 있었어요. 웹 브라우저 플러그인 Shockwave도 Director 콘텐츠를 재생하는 플레이어였고요. Flash가 웹 애니메이션을 평정하기 전, CD-ROM 멀티미디어 시대의 주인공은 Director였다고 보면 돼요.

Director 콘텐츠는 보통 프로젝터(projector) 형태로 배포됐어요. Director 런타임 엔진과 게임 데이터 파일(.dir, .dxr, .cxt 등)을 묶은 독립 실행 파일이에요. 여기에 Xtras라는 확장 플러그인(네이티브 코드로 된 DLL)을 붙여서 기능을 늘릴 수 있었어요.

왜 지금은 안 돌아갈까

이유가 여러 겹이에요. 우선 프로젝터 자체가 32비트 Windows 9x나 클래식 Mac OS 시절 바이너리라서 요즘 OS와 호환이 잘 안 돼요. 클래식 Mac용은 PowerPC나 68k 코드라서 최신 맥에서는 그냥 실행할 방법이 없고요.

그리고 이번 글의 핵심인 복사 방지가 있어요. 당시 상업용 CD-ROM 게임은 불법 복제를 막으려고 원본 CD가 정말 드라이브에 들어 있는지 확인하는 장치를 넣곤 했어요. 볼륨 이름을 확인하거나, 디스크의 특정 영역을 읽어보거나, 일부러 손상된 영역을 만들어서 원본과 복사본을 구분하는 식이었죠. 이런 검사는 Xtras 같은 네이티브 코드나 Lingo 스크립트 안에 숨어 있는 경우가 많았어요. 요즘은 CD 드라이브가 아예 없거나, ISO 이미지로 마운트하면 이런 저수준 검사를 통과하지 못해요. 정품을 갖고 있어도 실행이 안 되는 상황이 생기는 거죠.

리버스 엔지니어링은 어떻게 진행될까

이런 작업은 대체로 비슷한 순서로 진행돼요. 먼저 헥스 에디터로 파일 구조를 파악해요. Director 파일은 RIFF 계열의 청크(chunk) 구조라서, 각 블록이 '이름표, 크기, 데이터' 순서로 이어져 있어요. ImHex 같은 도구에서는 이런 구조를 패턴 언어로 정의해두면, 바이너리를 사람이 읽기 좋은 모양으로 보여줘요.

다음으로 Ghidra 같은 디스어셈블러로 네이티브 코드를 분석해서, 'CD 확인 후 실패하면 종료'로 이어지는 분기를 찾아요. Lingo 스크립트는 바이트코드로 컴파일돼 있어서 따로 디컴파일해야 하고요. 그런 다음 검사 부분을 무력화하거나, 검사가 기대하는 환경을 흉내 내는 방식으로 해결해요. 글쓴이는 이 과정을 차근차근 따라가며 보여줘서, 바이너리 포맷을 읽는 감각을 익히기에 좋은 교재 같은 글이에요.

업계 맥락: 디지털 보존이라는 큰 흐름

이 작업은 개인 취미를 넘어 디지털 보존(digital preservation)이라는 큰 흐름과 이어져 있어요. ScummVM 프로젝트는 몇 년째 Director 엔진을 다시 구현하고 있어서, 원본 실행 파일 없이 게임 데이터만으로 Director 게임을 돌릴 수 있게 만들고 있어요. 인터넷 아카이브는 Ruffle 같은 에뮬레이터로 Flash 콘텐츠를 보존하고 있고요. 소프트웨어는 물리적인 매체보다 빨리 사라져요. 플랫폼이 바뀌고, 회사가 없어지고, DRM이 실행을 막으면 수많은 창작물이 그대로 증발하거든요.

물론 복사 방지 우회에는 법적인 측면도 있어요. 이런 작업은 대개 정품을 가진 상태에서 개인적으로 보존하거나 호환성을 확보하려는 목적으로 이야기되고, 허용 범위는 나라마다 달라요.

한국 개발자에게 주는 시사점

우리나라에도 2000년대 초반 Director나 Flash로 만든 교육용 CD와 게임이 정말 많았어요. 그런데 상당수는 아직 체계적으로 보존되지 않았어요. 관심 있는 분들에게는 의미 있는 사이드 프로젝트 주제가 될 수 있어요.

실무적으로도 배울 게 많아요. 바이너리 포맷을 읽는 능력과 디스어셈블러로 로직을 추적하는 능력은 레거시 시스템 마이그레이션, 보안 분석, 문서가 없는 파일 포맷 처리처럼 생각보다 자주 필요하거든요. ImHex와 Ghidra는 무료라서, 이런 글을 따라 해보면서 감을 익히기 좋아요.

마무리

한 줄 정리: 오래된 소프트웨어를 살리는 일은 결국 아무도 문서로 남기지 않은 것을 읽어내는 기술이에요.

다시 해보고 싶은 옛날 CD-ROM 게임이나 교육용 타이틀이 있나요? 레거시 바이너리를 직접 뜯어본 경험이 있다면 나눠주세요.


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://werwolv.net/posts/macromedia_copy_protection/
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...