1000번 쓰기만 버티는 EEPROM을 끝까지 버티게 만든 것, 이번 해킹이 성립할 수 있었던 핵심이다. 개발자 DiscoStarslayer는 Bluesky 게시물을 통해, 자신과 협력자 Libby가 발견한 취약점으로 마침내 초대 "팻(Fat)" PlayStation 2의 디스크 인증과 대부분의 보안 메커니즘을 담당하는 SPC970 MechaCon 칩 펌웨어를 완전히 읽어내는 데 성공했다고 밝혔다—이는 2000년 이 칩이 탄생한 이래, 처음으로 그 내부 코드를 누군가 확인한 순간이다.
이전에도 한 그룹이 약 4년의 시간을 들여 더 느린 방식으로 칩 패키지를 직접 벗겨내 내용을 읽어내려 시도했지만, 거칠고 불완전한 덤프만 얻을 수 있었다. Libby가 발견한 취약점은 전혀 다른 경로를 택했다: 먼저 EEPROM 설정 쓰기 프로세스를 열고, 칩에게 앞으로 쓸 데이터 블록 수가 0이라고 알려 칩 내부 카운터에 언더플로우를 일으킨다. 그다음 버퍼 용량을 초과하는 데이터를 전송해, 넘치는 부분이 EEPROM 쓰기 작업을 저장하는 RAM 영역으로 흘러들어가게 만들고, 이를 통해 해당 작업의 소스 주소를 덮어써 칩 자신의 ROM을 가리키게 만든다. 그 결과 MechaCon은 자신의 256바이트 펌웨어를 실수로 EEPROM에 복사하게 되고, 이후 PS2는 표준 명령어로 이를 다시 읽어낼 수 있다. 이 과정을 약 1000번 반복해야 완전한 256KB 펌웨어 이미지를 조합해 USB 드라이브에 저장할 수 있다.
문제는 EEPROM에 웨어 레벨링(wear leveling)이 없고, 쓰기 수명도 플래시보다 훨씬 짧다는 점이다. 덤프를 한 번 할 때마다 그 수명을 소모하게 된다. 그래서 덤프 도구는 먼저 EEPROM 내용을 백업한 뒤, 작업이 끝나면 한 글자씩 원래대로 복원하고, 칩 부팅 시의 체크섬 과정과 대조해 확인한다. 그럼에도 Libby의 초기 버전 덤퍼 문서에는 이 과정이 PS2를 "정상 작동 불가능하게 만들거나, 하드웨어 수준의 수리가 필요하게 만들 수 있다"는 위험이 명시되어 있으며, 사용자가 그 책임을 져야 한다고 적혀 있다.
22개의 이미지 파일이 MechaPwn이 놓친 퍼즐 조각을 채우다
모든 결과물은 이미 GitHub에 업로드됐으며, 22개의 펌웨어 이미지 파일을 포함한다. 2000년 일본 한정 출시된 SCPH-15000부터 2002년 39000 시리즈 팻 PS2까지 아우르며, 같은 칩을 사용한 Namco System 246 및 256 아케이드 보드도 포함된다. 2003년 이후 채택된 "Dragon" 버전 MechaCon 칩은 사실 이미 2021년에 읽어내는 데 성공했고, 한 달 뒤 PS2 지역 제한 해제와 백업 디스크 구동을 가능케 한 MechaPwn 취약점으로 이어졌다. 하지만 당시 MechaPwn README에는 Dragon 칩을 사용하지 않은 초기 기종은 지원하지 않으며 지원할 계획도 없다고 명시돼 있었다—이는 2000년부터 2003년 사이 출시된 약 20개 모델에 영향을 미쳤다. 이들 초기 기종은 메모리 카드와 하드디스크 취약점을 이용해 백업 디스크를 구동할 수는 있었지만, 칩 레벨에서는 지금까지 결코 해제될 수 없었다. 그 안의 코드를 아무도 볼 수 없었기 때문이다. 바로 지금까지는.
PS2 게임 디스크 자체는 암호화되어 있지 않기 때문에, 이번 펌웨어 덤프가 게임 해킹을 위해 "뭔가를 해제"해 주는 것은 아니다. 이번에 진짜로 드러난 것은 Sony의 "MagicGate" 메모리 카드 암호화 메커니즘 코드, 그리고 PS2가 디스크와 메모리 카드로 부팅할 때 사용하는 실행 파일 형식인 KELF 뒤에 숨은 로직이다. 기여자 uyjulian은 이 정보가 향후 "완전한 시스템 레벨 로우레벨 에뮬레이션"에 활용될 가능성이 있다고 밝혔다. 현재 PCSX2 같은 에뮬레이터는 실제로 MechaCon의 코드를 실행하지 않고, C++로 그 명령어 세트를 재구현한 뒤 1KB 크기의 NVRAM 파일과 4바이트 버전 번호를 대역 데이터로 읽어들이는 방식을 쓴다. DiscoStarslayer는 Reliquary라는 이름의 PCSX2 포크를 직접 관리하며 PS2 인증 과정을 전문적으로 다루고 있는데, 이 프로젝트의 README 역시 보안 검사가 본체 고유 식별 정보를 대조해야 할 경우, 생성된 대역 데이터로는 실제 하드웨어 값을 대체할 수 없다는 점을 인정하고 있다.
uyjulian에 따르면 다음 목표는 MechaPwn처럼 SPC970을 해제할 수 있는 취약점을 찾는 것이지만, Dragon 칩만큼 빠르게 진행되지는 않을 전망이다. 당시 연구자들이 한 달 만에 Dragon을 공략할 수 있었던 이유는, Sony가 이를 펌웨어 업데이트를 수용할 수 있도록 설계해 결국 발견 가능한 약점을 남겨뒀기 때문이다. SPC970은 전혀 다르다—이 칩의 코드는 2000년에 마스크 롬(mask ROM)에 새겨진 뒤 단 한 번도 바뀐 적이 없으며, 따라서 공략할 수 있는 동일한 업데이트 메커니즘 자체가 존재하지 않는다.