2P by neo 20일전 | favorite | 댓글 1개

현미경 아래: Ecco the Dolphin — 미래의 수호자

  • Ecco the Dolphin: Defender of the Future는 저장 파일 이름에 따라 활성화되는 숨겨진 치트 기능이 있음
  • Ghidra와 Python을 사용하여 인코딩 방식을 역설계하여 특별한 이름을 발견함
  • 일부 이름은 오래전부터 알려져 있었으나, 나머지를 발견하여 "불사"와 디버그 표시 같은 기능을 잠금 해제함

인트로

  • Ecco the Dolphin: Defender of the Future는 공식적으로 출시된 마지막 Ecco 게임이며, 이후 게임은 취소됨
  • 알려진 치트는 VMU 화면에서 New Game을 선택하고, 이니셜을 GYU로 입력한 후, GYU를 다시 입력하고 세 글자를 추가하여 모든 스테이지를 잠금 해제할 수 있음

Ghidra를 통한 분석

  • flycast 에뮬레이터의 메모리 스냅샷을 분석하여 이니셜 입력 버퍼를 발견함
  • Ghidra를 사용하여 변환 함수가 버퍼를 읽고 변환된 값이 여섯 가지 특별한 값 중 하나인지 확인함
  • GYU GYU XXX9388D627로 변환되어 첫 번째 특별한 값이 됨

Python을 사용한 무차별 대입

  • GYU GYU는 여섯 글자이며, 가능한 조합은 26^6=308,915,776개임
  • 7글자 조합은 8억 개, 8글자 조합은 2080억 개로, 노트북에서 처리하기 어려움
  • Python으로 처리 코드를 복제하여 모든 가능한 조합을 체크함

효과

  • SOCCER+XXX를 입력하면 Bonus Game이 잠금 해제되어 수중 축구를 할 수 있음
  • EXBBERX+XXX는 옵션 화면에 Immortality Enabled를 표시하며, 익사하거나 죽지 않음
  • QQRIQ+XXX는 게임의 프레임 속도와 디버그 값을 표시함
  • XYZZYX+XXX는 현재 시계를 표시함
  • POPELY+XXX는 특별한 효과가 없는 것으로 보임

아웃트로

  • Appaloosa Interactive 게임의 인코딩 방식에 대한 다른 분석은 Three Dirty Dwarves에 관한 기사에서 확인 가능
  • 이전에 알려지지 않은 치트 코드를 찾는 다른 기사들은 아카이브에서 확인 가능
Hacker News 의견
  • CRC32 해시 알고리즘에 대한 설명과 관련 링크 제공. CRC32의 다항식을 알면 로그 시간 내에 답을 구할 수 있음.

  • Megadrive의 Ecco 게임에 대한 개인 경험 공유. 게임이 매우 어려워서 암호 시스템을 해독하여 최종 레벨에 도달했음. 게임을 이틀 만에 완료한 것에 대한 죄책감 언급.

  • "QQRIQ"는 여러 언어에서 수탉 소리를 나타내는 단어의 음성 약어임. 암호 선택 과정에 대한 궁금증 제기.

  • Ecco의 개발자인 Ed Annunziata가 LSD를 사용하지 않았지만 John C. Lilly의 작품을 많이 읽었다고 언급함. Lilly는 동물 지능, 케타민 심리치료, 고립 탱크, 의식 탐구 분야에서 선구적인 작업을 한 인물임. 그의 자서전 <i>The Center of the Cyclone</i> 추천.

  • Dreamcast 게임 리버스 엔지니어링에 대한 자료 요청. Skies of Arcadia와 관련된 체계적인 기술을 찾고 있음.

  • 리버스 엔지니어링 학습 시작점에 대한 고민. 대부분 Assembly를 먼저 배우라고 하지만, 그 이후의 구체적인 정보는 부족함. x86/arm/아케이드 플랫폼의 공통 패턴을 시도와 오류로 알아내는지에 대한 의문 제기.

  • 오래된 게임들이 더 많은 영혼을 가지고 있다고 느끼며, 최근 몇 년간 더 많이 즐기고 있음. 자동차 관련 경고에 감사함.

  • Sega Saturn에 관한 블로그 발견. 부모님 집에서 Saturn을 발견했으며, 게임 CD도 함께 있었음. 게임은 작동했지만 어떻게 활용할지 모름.

  • 수중 축구 치트의 작동 영상을 보고 싶다는 의견.

  • PS2 버전의 게임을 살펴보기를 권장. 레벨 잠금 해제 코드가 동일할 수 있으며, 리버스 엔지니어링이 더 쉬울 수 있음.