DOS 3.3 SYS.COM 명령어의 숨겨진 버그: NetDrive 디스크 이미지 손상의 미스터리
2025-02-24
이 글에서는 저자가 DOS 3.3 시스템 명령어 `SYS.COM`의 버그를 조사한 과정을 자세히 설명합니다. 이 명령어는 부트로더 코드를 디스크에 복사하지만, NetDrive 가상 디스크 이미지와 함께 사용하면 이미지가 손상됩니다. 면밀한 분석 결과, 저자는 `SYS.COM`이 디스크 매개변수를 가져오는 데 사용되는 일반 IOCTL 호출의 반환 코드를 확인하지 않는다는 것을 발견했습니다. 이 호출이 실패하면 (예: NetDrive 드라이버가 해당 기능을 지원하지 않는 경우), `SYS.COM`은 잘못된 쓰레기 데이터를 디스크 부트 섹터에 기록하여 이미지를 손상시킵니다. 이 버그는 DOS가 디스크의 기하학적 정보를 가져오려고 시도하기 때문에 특정 유형의 디스크 이미지(예: 하드 디스크 이미지)에서만 발생합니다. 플로피 디스크 이미지에서는 발생하지 않습니다. 저자는 최종적으로 버그의 근본 원인을 찾아내고 발생 조건을 설명합니다.
개발