AI 16개로 게임 코드 복원…함수 83%가 원본과 일치
개발자 Maurice Heumann이 약 3개월간 여러 AI로 게임 실행 파일을 분석해 C++ 코드로 되돌린 과정을 공개했다. 재구성한 코드는 비공개여서 외부에서 직접 확인할 방법은 없다.

개발자 Maurice Heumann이 10월 9일 여러 AI를 동원해 1인칭 슈팅 게임의 코드를 되살린 과정을 공개했다. 약 3개월 동안 완성된 게임 실행 파일을 분석해 사람이 읽을 수 있는 C++ 코드로 되돌리는 작업이었다. 작성자에 따르면 게임 함수의 99%를 재구성한 코드에 담았고, 전체 함수의 83%는 다시 실행용 코드로 바꿨을 때 원본과 바이트 단위로 일치했다.
원본과 같은지 어떻게 확인했나
AI가 실행 파일을 분석해 코드를 만들면, 원본 게임을 만들 때 쓴 컴파일러로 그 코드를 실행용으로 바꿔 원본과 맞춰 봤다. 이 작업에는 스스로 일을 처리하는 AI(에이전트)가 여러 개 붙었다. 마지막 몇 주에는 주로 16개를 썼다고 작성자는 밝혔다.
첫 한 달 만에 약 80%를 재구성해 게임을 실행하고 메뉴와 맵을 불러오는 단계까지 갔다. 그러나 작성자는 당시 코드에 함수 형식과 자료 구조 등의 오류가 많았다고 설명했다. 화면이 뜨고 일부 기능이 작동해도 코드 안에는 고칠 문제가 남아 있었다. 이후에는 원본과 바이트 단위로 맞춰 보는 검사를 도입했다.
검사는 개별 기능을 맡는 함수마다 이뤄졌다. 기계어의 바이트를 하나씩 대조하고, 주소에 따라 달라지는 값은 따로 확인했다. 한 번 통과한 함수도 자동 검사로 다시 살폈다. 앞서 맞춰 놓은 코드가 이후 수정 때문에 어긋나지 않았는지 점검하는 방식이다.
남은 17%는 어떻게 됐나
작성자는 남은 함수 가운데 컴파일 결과를 똑같이 재현하기 어려운 사례가 있다고 밝혔다. 바이트가 일치하지 않는 함수도 동작은 정확할 것으로 본다고 작성자는 밝혔다.
AI가 처리한 분량은 추정치만 나왔다. 글 제목에는 5,000억 개 이상이라고 적혀 있고, 작성자가 추산한 실제 처리 분량은 글자 조각 단위로 6,000억~7,000억 개다. 기록 일부가 유실돼 정확한 집계는 없고, 들어간 비용도 공개하지 않았다.
한국에서도 써 볼 수 있나
작성자는 게임 이름과 재구성한 코드를 공개하지 않았고, 코드를 계속 비공개로 두겠다는 방침이다. 한국을 포함한 외부 이용자가 결과물을 내려받아 직접 확인할 방법은 없다.
눈에 띄는 대목은 게임 실행과 메뉴 로딩에 성공한 뒤에도 오류를 찾아내 검증 방식을 바꿨다는 점이다. 바이트가 일치하지 않는 함수가 실제로 제대로 움직이는지, 작업에 자원이 얼마나 들어갔는지, 외부에서 검증할 결과물이 공개되는지가 이 성과를 가늠할 다음 확인 대상이다.