(새 문서: '''Code-Data Log'''. 機械語 코드 中 어느 部分이 (實行可能한)코드이고 어느 部分이 데이터인지 記錄하는 機能. 파일 시스템을 쓰지 않는 古典게임에서는 實際로 實行되는 프로그램 코드와 그래픽, 사운드, 臺詞, 맵 데이터 等이 함께 섞여 配列되어 있다. ROM 뱅크를 轉換할 수 있는 시스템에서는 뱅크別로 그러한 用度를 다르게 區分하는 境遇도 있으나, 結局 무...)
 
편집 요약 없음
 
4번째 줄: 4번째 줄:
[[파일 시스템]]을 쓰지 않는 古典게임에서는 實際로 實行되는 프로그램 코드와 그래픽, 사운드, 臺詞, 맵 데이터 等이 함께 섞여 配列되어 있다. ROM [[뱅크]]를 轉換할 수 있는 시스템에서는 뱅크別로 그러한 用度를 다르게 區分하는 境遇도 있으나, 結局 무엇이 코드이고 무엇이 데이터인지는 分析하지 않으면 알 수 없다. 컴파일된 프로그램은 結局 바이트의 배열에 不過하기 때문.
[[파일 시스템]]을 쓰지 않는 古典게임에서는 實際로 實行되는 프로그램 코드와 그래픽, 사운드, 臺詞, 맵 데이터 等이 함께 섞여 配列되어 있다. ROM [[뱅크]]를 轉換할 수 있는 시스템에서는 뱅크別로 그러한 用度를 다르게 區分하는 境遇도 있으나, 結局 무엇이 코드이고 무엇이 데이터인지는 分析하지 않으면 알 수 없다. 컴파일된 프로그램은 結局 바이트의 배열에 不過하기 때문.


== 作動 原理 ==
高級 [[디버깅]] 機能을 갖춘 [[에뮬레이터]]에서는 이 分析을 自動으로 해 준다. 에뮬레이션이 돌아가는 途中 코드로서 實行된 部分과 데이터로서 읽힌 部分을 알아서 分類한다는 것이다.
高級 [[디버깅]] 機能을 갖춘 [[에뮬레이터]]에서는 이 分析을 自動으로 해 준다. 에뮬레이션이 돌아가는 途中 코드로서 實行된 部分과 데이터로서 읽힌 部分을 알아서 分類한다는 것이다.


디버거가 分析한 데이터는 ROM과 비슷한 크기를 가진 別途의 파일로 記錄된다. 헤더 部分을 除外한 內容은 各 바이트가 ROM의 한 바이트에 該當하며, 各 바이트가 어떻게 쓰였는지를 모두 記錄한다.
디버거가 分析한 데이터는 ROM과 비슷한 크기를 가진 別途의 파일로 記錄된다. 헤더 部分을 除外한 內容은 各 바이트가 ROM의 한 바이트에 該當하며, 各 바이트가 어떻게 쓰였는지를 모두 記錄한다.
== 必要性 ==
게임을 分析하고자 할 때 CDL 데이터가 없으면 肉眼으로 코드와 데이터를 識別해야 한다. 基本的으로 디스어셈블러는 모든 데이터를 코드로 出力하기 때문에, 말이 안되는 코드가 反復的으로 나타나면 그래픽 데이터으로 看做하는 式으로 알아서 判斷해야 하는데, CDL 機能이 있다면 게임을 돌리기만 해도 이 作業을 自動으로 해준다.
CDL 入力을 받는 [[디스어셈블러]]에 이 情報를 提供할 境遇, 데이터로 判別된 部分은 디스어셈블된 코드가 아닌 바이트 配列로 出力된다.


[[分類:디버깅]]
[[分類:디버깅]]

2025년 9월 25일 (목) 19:06 기준 최신판

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

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

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

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

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

必要性(필요성)

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

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