처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.06.28 21

게임큐브 게임을 원본과 똑같은 C 코드로 되살리기 — Decomp Academy

Hacker News 원문 보기

디컴파일이 대체 뭐길래

우리가 작성한 소스 코드는 컴파일을 거치면 사람이 못 알아보는 기계어, 그러니까 0과 1의 덩어리로 바뀌어요. 그럼 반대로 그 기계어만 가지고 원래 소스 코드를 되살릴 수 있을까요? 이 작업을 디컴파일(decompile)이라고 해요. Decomp Academy는 그중에서도 옛날 닌텐도 게임큐브 게임을 디컴파일하는 법을 처음부터 차근차근 가르쳐주는 학습 사이트예요.

그런데 여기서 노리는 건 그냥 비슷하게 복원하는 게 아니에요. 목표는 매칭(matching) 디컴파일이라는 거예요. 이게 뭐냐면, 내가 복원한 C 코드를 원본 게임이 쓰던 것과 똑같은 컴파일러, 똑같은 옵션으로 다시 컴파일했을 때, 결과물 기계어가 한 바이트도 안 틀리고 원본과 완벽하게 똑같이 나오는 걸 말해요. 보기에 비슷한 수준이 아니라 원본과 동일함이 증명되는 수준인 거죠.

이게 왜 그렇게 어렵냐면

컴파일러는 소스 코드를 기계어로 바꿀 때 자기 나름대로 최적화를 해요. 변수 계산 순서를 바꾸고, 여러 연산을 하나로 합치고, CPU 레지스터를 자기 맘대로 배치하죠. 그래서 똑같은 동작을 하는 코드라도 컴파일러가 만든 것과 한 치도 안 틀리게 기계어를 맞추려면, 당시 그 컴파일러가 어떤 버릇으로 코드를 뽑아내는지까지 꿰고 있어야 해요. 게다가 게임큐브는 요즘 PC와 다른 PowerPC 계열의 Gekko라는 CPU를 썼기 때문에, 이 옛날 아키텍처의 명령어 체계도 이해해야 하고요.

실제 작업은 이렇게 흘러가요. 함수 하나를 골라서 기계어를 디스어셈블(역어셈블, 기계어를 사람이 읽을 수 있는 어셈블리로 푸는 것)해서 들여다보고, 그게 무슨 일을 하는지 추측해서 C 코드로 적어봐요. 그다음 그 C 코드를 컴파일해서 원본 기계어랑 나란히 비교하고, 안 맞는 부분이 있으면 코드를 고쳐서 또 비교하고, 이걸 100% 똑같아질 때까지 수십 번 반복해요. 도구로는 Ghidra(미국 NSA가 공개한 리버스 엔지니어링 도구)나 objdiff(원본과 내 결과물의 기계어를 시각적으로 비교해주는 도구) 같은 걸 쓰고요. 거의 정교한 퍼즐 맞추기예요.

이렇게 고생해서 얻는 게 뭐냐면

매칭 디컴파일이 완성되면 게임의 진짜 설계도를 손에 쥐는 셈이에요. 실제로 슈퍼 마리오 64나 젤다의 전설 시간의 오카리나 같은 명작들이 이 방식으로 완전히 복원됐고, 덕분에 원본 코드를 고쳐서 PC로 네이티브 포팅을 하거나, 와이드스크린·60fps 패치를 넣거나, 수십 년 묵은 버그를 고치는 일이 가능해졌어요. 단순 에뮬레이터로 돌리는 것과는 차원이 다른, 게임을 근본부터 자유롭게 주무를 수 있게 되는 거죠.

업계 맥락과 법적인 부분

이건 레트로 게임 보존(preservation)과 모딩 커뮤니티에서 오래전부터 이어져 온 흐름이에요. 닌텐도, 세가 여러 콘솔 게임들이 자원봉사자들의 손으로 하나씩 디컴파일되고 있죠. 다만 법적으로는 회색지대예요. 보통 이런 프로젝트는 원본 게임 데이터(에셋)는 빼고 코드만 복원해서 공유하고, 실행하려면 본인이 정품을 갖고 있어야 한다는 식으로 선을 지켜요. 그래도 저작권 이슈에서 완전히 자유롭진 않아서 늘 조심스럽게 다뤄지는 영역이고요.

한국 개발자에게 주는 의미

나는 게임 안 만드는데 싶을 수 있는데, 여기서 쓰이는 기술은 통째로 실무 자산이에요. 기계어와 어셈블리를 읽는 능력, 컴파일러가 코드를 어떻게 최적화하는지에 대한 감각은 보안 취약점 분석, 악성코드 분석, 펌웨어 리버싱, 성능 디버깅 같은 곳에서 그대로 빛을 발하거든요. 평소 고수준 언어만 쓰던 사람이 내 코드가 결국 기계 수준에서 어떻게 도는가를 체감하기에 이만한 훈련이 없어요. 게임이라는 친숙한 소재로 저수준의 세계에 입문할 수 있다는 점에서 꽤 매력적인 교재예요.

한줄 정리: 게임큐브 게임을 원본과 한 바이트도 안 틀리게 C로 되살리는 매칭 디컴파일은, 저수준 컴퓨팅과 리버스 엔지니어링을 배우는 최고의 실전 놀이터예요. 여러분은 어떤 추억의 게임을 코드 수준에서 뜯어보고 싶으신가요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.