CDL

十八子(십팔자) (토론 | 기여)님의 2025년 9월 25일 (목) 19:06 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

Code-Data Log. 機械語(기계어) 코드 () 어느 部分(부분)이 (實行可能(실행가능)한)코드이고 어느 部分(부분)이 데이터인지 記錄(기록)하는 機能(기능).

파일 시스템을 쓰지 않는 古典(고전)게임에서는 實際(실제)實行(실행)되는 프로그램 코드와 그래픽, 사운드, 臺詞(대사), 맵 데이터 ()이 함께 섞여 配列(배열)되어 있다. ROM 뱅크轉換(전환)할 수 있는 시스템에서는 뱅크()로 그러한 用度(용도)를 다르게 區分(구분)하는 境遇(경우)도 있으나, 結局(결국) 무엇이 코드이고 무엇이 데이터인지는 分析(분석)하지 않으면 알 수 없다. 컴파일된 프로그램은 結局(결국) 바이트의 배열에 不過(불과)하기 때문.

作動(작동) 原理(원리)

高級(고급) 디버깅 機能(기능)을 갖춘 에뮬레이터에서는 이 分析(분석)自動(자동)으로 해 준다. 에뮬레이션이 돌아가는 途中(도중) 코드로서 實行(실행)部分(부분)과 데이터로서 읽힌 部分(부분)을 알아서 分類(분류)한다는 것이다.

디버거가 分析(분석)한 데이터는 ROM과 비슷한 크기를 가진 別途(별도)의 파일로 記錄(기록)된다. 헤더 部分(부분)除外(제외)內容(내용)() 바이트가 ROM의 한 바이트에 該當(해당)하며, () 바이트가 어떻게 쓰였는지를 모두 記錄(기록)한다.

必要性(필요성)

게임을 分析(분석)하고자 할 때 CDL 데이터가 없으면 肉眼(육안)으로 코드와 데이터를 識別(식별)해야 한다. 基本的(기본적)으로 디스어셈블러는 모든 데이터를 코드로 出力(출력)하기 때문에, 말이 안되는 코드가 反復的(반복적)으로 나타나면 그래픽 데이터으로 看做(간주)하는 ()으로 알아서 判斷(판단)해야 하는데, CDL 機能(기능)이 있다면 게임을 돌리기만 해도 이 作業(작업)自動(자동)으로 해준다.

CDL 入力(입력)을 받는 디스어셈블러에 이 情報(정보)提供(제공)境遇(경우), 데이터로 判別(판별)部分(부분)은 디스어셈블된 코드가 아닌 바이트 配列(배열)出力(출력)된다.