CD 등 광디스크를 덤프 뜨는 것은 중요합니다.
게임이나 유틸리티 등 대부분의 컴퓨터 자료들, 그리고 과거의 음악과 영상물들이 광 매체를 통해 가장 많이 배포되었기 때문입니다.
디지털로 배포되는 자료도 있지만, 이는 비교적 최근의 자료이며 동시에 보존하기도 쉽습니다. 하지만 광 매체는 그런 자료들에 비해서는 상대적으로 까다롭습니다.
그냥 대충 파일 복사만 하면 끝이라고 생각하실 분들도 계실 겁니다. 그리고, 사실 대부분의 디스크는 그럽니다.
만약 그 디스크에 복사 방지가 걸려있다면? 만약 뒷판 스크래치가 많아 읽기 오류가 발생한다면?
그리고 무엇보다도 그 디스크가 희귀 디스크라면?
상황이 골때리게 됩니다.
SACD나 GD같은 경우는요?
SACD는 작동하는 플스나 오포 플레이어가 필요하고 이들은 모두 비싼데다가 방법도 복잡하며 무엇보다 현재 참치플스는 거의 남아있지 않죠.
디스크 드라이브가 정상작동하는 드림캐스트도 마찬가지입니다. 슬슬 내구연한이 다 되어가고 있으며, GD의 경우 드캐가 없어지는 날이 된다면 그냥 플라스틱 도넛 모형에 불과한 쓰레기가 되어 버립니다. 자료를 영영 읽을 수 없게 되죠. 그냥 골때리는게 아니라, 아주 골때립니다.
그래서, 한 가지 아이디어를 생각해 봤습니다.
광매체를 정확하고 빠르게 덤핑하고 타 기기의 외장 CD 드라이브를 에뮬레이션 하는 전용 기기가 있으면 어떨까.
라는 생각을 한 지 꽤 오래 지났네요.
시작은 꽤나 심플했습니다.
프린세스 메이커에 한창 빠졌을 때, 프메3 만트라판을 한국어 음성을 들으면서 하겠다고 인터넷에 떠도는 MDS를 받아서 가상머신에 깔고 정품 코드 58RN-A3QD까지 입력하였습니다.(모든 CD마다 코드가 같음. CD-COPS의 특징) 그러나 오류가 발생했다면서 실행될 생각 자체를 안 하더랍니다.
궁금했습니다. 프메3 자료를 올려주신 분께 직접 문의해서 알아봤는데, 상태가 괜찮은 CD라고 합니다.
걸레짝이 다 된 CD라면 TOC조차 읽을 수 없고, TOC를 원할히 읽는다면 일단 옐로우북 CD는 얼추 데이터를 읽을 수 있으니 굳이 필요한 질문은 아니었던 것 같지만....
이렇게 된 이유는 다름아닌 CD-COPS라는 락 때문이었으며, 이 외에도 수많은 복사 방지 매커니즘이 있고 이들이 덤핑과 아카이빙을 방해하고 있다는 사실을 깨닫게 되었습니다.
하드웨어야 망가져도 설계도만 있으면 충분히 다시 만들 수 있습니다. 하지만 자료의 유실은 돌이킬 수 없습니다.
여담이지만, Redump.org에서 덤핑을 활발하게 진행중인 것 같습니다.
서양권 단체인데, 큐시트 파일만 올려놓은 걸 보니까 적어도 프린세스 메이커는 전부 덤프 떠놨더라고요 ㅋㅋㅋ
일단, 이 설계는 굉장히 초보적인 설계이며 실현 가능성도 염두에 두지 않았습니다.
아직 CD / DVD의 규격에 대해서 100% 완전히 이해하지는 못했으므로, 약간 이상하거나 말이 안되는 내용이 틀림없이 있을 것이며
기기의 디자인은, 소니의 필드용 DAT 레코더 디자인에서 따 왔습니다.
CD를 어떻게 삽입할 것인가? 에 대해 생각을 많이 해 보았으나,
-> 슬롯 로딩 방식은 굉장히 멋있지만 호환성이 떨어지고 내구성이 약하다
-> 트레이 로딩 방식은 픽업이 무려 4개나 들어가는 이 장치에 맞는 디자인이 아니다
-> 캐디 삽입 방식은 가장 적합하지만 4픽업에 맞춘 전용 캐디가 필요하며 복잡한 로딩과 캐디 손상시 사용불능
-> 탑 로딩 방식은 어떤 디스크도 OK, 부품이 적어 내구성도 최고이다.
그래서 탑 로딩 방식으로 정하게 되었습니다.
단점도 있습니다. 당장 싸구려처럼 보인다는게 문제이지만, 명품 기기도 아니고 이는 일단 중요한 요소가 아닙니다.
또한 먼지 유입이 잦다는 단점 역시 존재합니다만, 반대로 생각하면 먼지 제거도 쉽다고 볼 수 있죠.
우선 전면에는 디스플레이가 달려 있으며 옵션을 조정 가능하고 상태를 표시하는 기능을 합니다. 이걸 굳이 설명할 필요가 있나...?
우측의 조그 다이얼으로 세밀한 설정이 가능합니다.
상단부의 직사각형 두 개는 First Door Open 과 Power 키가 있고, 옆에 덤프 시작 버튼이 있습니다.
픽업이 4개입니다.
->아래방향의 큰 픽업은 이미지 센서로, 디스크의 표면 상태를 체크하는 기능을 함. 이 기능으로 스크래치가 있는 디스크를 읽을 때 약간의 보정 효과를 얻을 수 있으며, Ring Protech 복사 방지의 경우 이를 통해 Ring의 위치를 감지함.
->나머지 픽업 3개 중 1개는 쓰기용, 2개는 읽기 전용이며 데이터의 포지션을 정밀하게 추출하거나 오류 보정용 및 섹터 정밀 스캔에 사용
CD 도어에도 픽업이 붙어 있습니다. 이 픽업은 CD의 앞면을 스캔하여 사진으로 저장하기 위한 스캐너로, 드럼 스캐너와 원리가 비슷하며 덤핑과 함께 실행됩니다. 따라서, 더 이상 CD를 평판스캐너에 넣고 스캔할 필요가 없습니다.
커버를 스캔하는 장치까지 추가하려는 생각을 했었으나, 쓸데없는데다가 부피만 차지하므로 제외.
우선 성능은 다음과 같습니다.
- 미디어텍 CPU (스냅드래곤 845와 동일 성능 제품 선택)
- 4GB RAM
- 초정밀 서보모터 4개와 픽업 3개 이미지 스캐너 1개, 이들은 모두 독립적으로 작동하며 CPU와 직접 연동되어 작동함
- CPU와 연동되어 작동하는 회전수 제어장치가 통합된 스핀들 모터
- 고품질 클럭
컨트롤 패널 및 기타 제어부와 디스크 드라이브 제어부는 전혀 다른 CPU와 부품을 사용합니다
2개로 CPU와 통신을 독립함으로써 서로의 신호 간섭을 원천 차단하고, 컨트롤 패널 제어 중 성능 하락으로 인한 읽기 오류를 방지하기 위함입니다.
복잡한 설계가 필요하겠지만, 기기의 목적을 생각해 본다면 충분히 일리 있다고 생각합니다.
디스크를 삽입할 시
- 읽기용 픽업 1,2가 디스크의 TOC와 ATIP 정보 등 메타데이터를 읽음
- 이후 각각의 픽업이 추출한 정보의 CRC 체크 후
- 같을 경우에는 다음 단계로 진행
- 다를 경우에는 이미지 스캐너로 디스크 표면 체크 및 오류 보정 데이터 생성
- 이후 올바른 데이터를 읽을 때까지 지정한 횟수만큼 재시도
- 2번 단계가 성공하면 덤프 준비 모드에 진입
픽업이 3개가 달려 있습니다.
이 3개의 픽업은 다양한 용도로 활용되는데, 우선 2개는 읽기 전용이고 나머지 하나가 쓰기 가능합니다.
- 쓰기 시: 쓰기 픽업 앞의 읽기 픽업이 디스크의 상태 체크, 뒤의 읽기 픽업이 쓰기 상태 점검
- 읽기 시: 3개의 픽업을 동시에 사용하여 데이터 위치 인식 및 에러 보정 등
저도 제가 스스로 뭔 개소리를 하고 있는 건지 모를 정도로 원리가 결코 간단하다고 볼 수는 없으므로, 각각의 케이스에 빗대어 봅니다.
1. 상태가 좋은 오디오 CD
닥치고 읽습니다. 위의 읽기 단계를 그대로 시행한 이후, 3개의 픽업을 모두 사용하여 발생할 수 있는 에러를 빠른 속도로 보정합니다.
경우에 따라, 3개의 센서가 모두 에러 보정에 활용되는 경우 및 2개의 센서만이 에러 보정에 활용되고 나머지 1개의 센서가 정상적인 부분을 읽을 때 사용되는 경우가 있습니다.
하나의 rr5% RAR 압축파일을 생성하며,
폴더 내부에는 WAV+CUE+SUB+LOG+PNG 파일이 생성됩니다.
(SUB는 전용 서브채널 데이터 저장 규격)
2. 상태가 좋은 데이터 CD
역시 닥치고 읽으며 1번과 완전히 동일한 과정을 거칩니다.
rr5% RAR 압축파일을 생성하며,
폴더 내부에는 RAW+CUE+SUB+LOG+PNG 파일이 생성됩니다.
3. 상태가 좋지 않은 CD
우선 덤핑을 시도하며, 1개의 센서만으로 올바른 보정이 불가능한 데이터가 감지될 경우,
덤핑을 일시 중단한 후 표면 스캐너로 디스크의 표면을 스캔한 뒤, 이 데이터를 픽업으로 보내서 픽업의 이동을 디스크의 현재 표면 상태에 최적화합니다.
사용자가 지정한 설정에 따라 읽기 오류를 보정합니다.
EAC와 비슷한 원리라고 볼 수 있지만, 픽업 여러 개를 동시에 활용하여 추출하므로 오류 보정에 더 적은 시간이 걸리고 정확합니다.
4. 드림캐스트용 GD
이건 꽤나 까다롭습니다.
우선, 드림캐스트의 GD는 디스크 구조 자체가 병맛스럽습니다. TOC 부분에는 Audio CD의 정보만이 저장되어 있으며,
그래서, GD를 넣은 뒤 일반 CD로 인식되면 'DC 모드' 를 활성화하면 가능합니다.
특별한 버튼을 눌러 명령을 내리는 방식으로 진행되며, 표면 스캐닝 진행 후 GD의 규격으로 반사율이 다른 부분을 감지하고, 저밀도 부분과 고밀도 부분의 검은 파트를 읽으려고 시도하여 SEGA가 감지될 경우 'DC 덤핑 모드' 가 활성화 됩니다.
이 모드를 활성화 할 경우, 저밀도 트랙과 검은 트랙을 읽은 뒤 픽업이 이동하여 두 번째 고밀도 부분의 TOC을 읽으려고 시도하고, 이후에는 별도의 CD를 리핑하는 과정과 동일하게 이루어집니다.
이렇게 해서 생성된 디스크 이미지는,
1번 오디오 트랙의 WAV+CUE, 2번 세가 트랙의 RAW+CUE, 3번 게임 트랙의 RAW+CUE, 그리고 전체 트랙의SUB+LOG+PNG이며,
이를 CDI / GDI 이미지로 변환할 수 있습니다.
5. SACD
SACD는 DVD와 100% 동일한 물리적 규격을 사용하여 GD보다는 리핑이 쉽습니다. 철저한 암호화로 악명이 높지만, 이는 이미 해독된 지 오래입니다.
SACD는 우선 Pit WIdth Modulation이라는 방식을 사용합니다. 이름 그대로 디스크 표면의 피트 두께를 일정한 규칙으로 늘였다 줄인 채로 기록합니다. 이 경우, 피트의 두께에 따라서 반사율이 달라지고 0과 1으로 나누어 떨어지지 않게 하여 이는 결과적으로 해독이 불가능한 일반 디스크 드라이브에서는 읽을 수 없게 됩니다.
하지만, Pit Width Modulation을 해독할 수 있는 전용 칩이 있는 플레이어에서는, SACD의 Pit Width 규칙대로 읽어서 피트별로 차이나는 반사율을 보정할 수 있어 일반 디스크처럼 정보를 덤핑할 수 있습니다.
80bit 암호화는 이미 깨졌으며, 따라서 Oppo 등 일부 음악 플레이어에서 이 복호화 정보를 삽입하는 것을 토대로 SACD를 리핑할 수 있습니다.
이 디스크 드라이브에서도 똑같은 원리로 SACD를 리핑합니다.
CPU와 직결된 픽업이 Pit Width Modulation으로 인해 DVD를 일반 모드에서 읽을 수 없고, CD 층과 DVD 층이 동시에 존재하고 SACD의 Lead-In 부분에 기록된 암호화된 SACD 디스크 정보를 감지할 경우 SACD 리핑 모드를 시작하며, 덤프 완료시 생성된 RAW 데이터를 바탕으로 80비트 암호를 해독합니다.
ISO+LOG가 생성됩니다.
이는 원본 그대로 리핑을 해도 다시 생산할 수가 없는 구조이기 때문입니다.
6. SecuROM, CD-COPS 등
이 락들의 공통점은, 데이터의 위치를 그대로 암호화에 사용한다는 점 입니다.
그런데, 일반적인 디스크 드라이브에서 데이터의 위치를 정확히 측정할 수는 없습니다.
그래서, 이 타입의 락들은 정품 디스크임을 확인하기 위해 데이터에 접근하는 Seek Time을 측정합니다.
밑의 그림을 보시면, X와 Y 섹터는 정확히 90도의 각을 이루고 있습니다.
구운 CD는 섹터의 밀도가 일정하지만 락이 걸린 CD의 섹터 밀도는 언제나 다릅니다.
그래서, 이 섹터 X와 Y는 구운 CD와 정품 CD에서 그 정확한 위치가 서로 다를 것이고, 가드 모듈 프로그램이 이를 감지하여 프로그램의 실행을 차단합니다.
CD를 구울 때 SecuROM, CD-COPS 모드를 체크하고 설정을 조작하면 데이터의 위치를 그대로 측정하여 이를 SUB 폴더에 포함할 수 있습니다.
이 드라이브에 들어있는 스핀들 모터는 1회전을 정확히 감지하고, 3개의 픽업을 모두 사용하여 덤프를 뜰 수 있습니다. 따라서 어느 데이터가 CD의 어느 각에 위치하는지를 인식할 수 있습니다.
이 디스크 드라이브만이 제공하는 Advanced Mode를 사용하면, CD의 섹터 밀도와 위치 갯수를 측정하여 1:1 카피를 만들 수 있습니다. 속도가 느리며 용량이 크지만, 이 파일을 사용하여 디스크를 이 드라이브에서 구울 경우 정확한 카피를 생성할 수 있습니다.
7. Playstation 디스크
ATIP 정보를 읽습니다.
일반적인 디스크 드라이브는 ATIP 정보를 임의로 읽을 수 없으며, 쓰기가 가능한 디스크 드라이브의 경우 오직 드라이브의 펌웨어에서 지시하는 내용만을 읽고 쓸 수 있습니다.
하지만, 이 드라이브는 ATIP 정보를 정확하게 감지하고 읽거나 수정할 수 있습니다.
ATIP 정보는, 데이터 채널을 보존하면서 기록하는 픽업을 일정한 주파수로 진동하여 기록됩니다.
CD를 굽는 중 쓰기 픽업을 정확히 동기화하는 용도로 사용되며
플레이스테이션 디스크에는 이 Wobble이 존재하지만, ATIP 표준 규격을 지키지 않습니다.
따라서 일반적인 드라이브에서는 데이터를 복사 가능해도 이 Wobble까지 복사할 수는 없습니다.
만약 Wobble이 플레이스테이션 전용 규격임을 감지했을 경우 이 CD 복사기는 디스크를 덤프뜬 뒤 SUB 파일에 플레이스테이션 디스크 규격을 포함합니다.
쓰기 레이저가 한개 포함되어 있는데, 이를 통해 시중의 드라이브에서는 불가능했던 전용 ATIP Wobble을 직접 기록하여 플레이스테이션용 디스크를 정확히 재생산할 수 있습니다.
이 외에도 Twin Sector, Bad Sector 생성방식이나 전용 Signature 기록 방식 등 다양한 방법이 있고,
이들 방식에 대해 연구를 할 시간은 좀 부족했습니다.
또한 한국에서 만든 AlphaROM이라는 복사 방지 규격이 가장 강력하여 아직도 뚫리지 않았다고 하는데 이것도 연구해보고 싶네요.
나중에 수능 끝나고 좀 더 공부해서 시제품을 만들어 보고 싶네요.
그 전에 아직 레드북 옐로우북도 이해를 완벽히 못해서리....
http://www.linkdata.dk/cdnetman.htm
http://www.uncoveror.com/sayno.htm
http://www.audioht.co.kr/atl/view.asp?a_id=2835
http://www.settec.net/jp
http://www.multimediadirector.com/help/technology/dvdaudio/dvdaud_sacd.htm
http://www.reverse-engineering.info/CD/Angle_Based_Copy_Protections.html
http://www.reverse-engineering.info/CD/ATIP_Wobble_Info.html
내일 수정하겠습니다. 오늘은 너무 귀찮아서