오래된 플로피 이미지 형식 DXP 및 SXD 해독기 개발기

Cracking DXP and SXD

작성자
HackerNews
발행일
2026년 01월 16일

핵심 요약

  • 1 오래된 하드웨어 드라이버 및 패치 배포에 사용된 DXP 및 SXD와 같은 자체 추출 플로피 이미지 형식의 복잡한 구조와 역설계 과정을 상세히 설명합니다.
  • 2 DXP는 LHA의 lh1 및 lh5 압축 알고리즘을 사용하며, SXD는 LZHUF.C 기반의 수정된 압축 방식을 채택하고 있어 각 형식의 압축 및 CRC 계산 방식이 다릅니다.
  • 3 문서화되지 않은 DXP, SXD, TeleGet 플로피 이미지 형식을 리버스 엔지니어링하여 압축 해제, CRC 검증, 그리고 OEM별 변형에 대한 해결책을 제시합니다.

도입

소프트웨어가 플로피 이미지 형태로만 제공되던 과거의 상황, 특히 역사적인 하드웨어 드라이버와 패치 배포 방식에 대한 배경을 설명합니다. 초기에는 별도의 유틸리티로 이미지를 디스켓에 기록했으나, 1990년경부터 자체 추출(self-extracting) 플로피 이미지가 등장하여 배포 편의성을 크게 향상시켰습니다. 본문은 이러한 자체 추출 이미지 형식인 DXP와 SXD, 그리고 IBM이 사용했던 TeleGet 형식의 구조와 이를 역설계하는 과정을 다룹니다.

DXP (Disk Express) 형식 분석

DXP는 DOS 및 OS/2용 자체 추출 이미지 유틸리티입니다.

  • 압축: DXP 1.x는 LHA의 lh1 방식을, 2.x는 lh5 압축 방식을 사용합니다.

  • CRC: 32비트 CRC를 사용하며, 버전 및 압축 여부에 따라 계산 방식이 다릅니다. IBM 라이선스 DXP는 다른 초기 시드 값을 사용하여 호환되지 않습니다.

SXD (CopyQM SXD) 형식 분석

Sydex의 CopyQM과 연관된 SXD 형식은 “SXD” 시그니처를 가진 자체 추출 이미지입니다.

  • 특징: 표준 DOS 외에 Microsoft DMF 1.68M 디스켓 등 비표준 형식도 지원합니다.

  • 압축: DXP 1.x와 유사한 LZHUF.C 기반 알고리즘을 사용하나, 디코딩 버퍼 초기화 방식이 다릅니다.

  • CRC: CRC-16을 사용하며, 각 트랙의 압축 해제 데이터를 개별 체크섬하여 부분 손상 감지에 유리합니다.

  • 난이도: 메시지 스크램블링으로 인해 역설계가 어려웠습니다.

미사용 트랙 처리 및 TeleGet 형식

DXP와 SXD는 미사용 트랙을 건너뛰어 이미지 크기를 최적화하나, 이는 아카이빙 시 원본 재현에 문제를 일으킬 수 있습니다. IBM이 사용한 TeleGet은 TeleDisk와 유사하지만, 자체 추출 기능이 없으며 헤더 구조와 OEM 식별자(“IBM NSC”)가 달라 호환되지 않습니다.

결론

오래된 플로피 이미지 형식인 DXP, SXD, 그리고 TeleGet은 문서화가 부족하여 역설계 과정이 필수적이었습니다. 복잡한 압축 알고리즘, 다양한 CRC 계산 방식, 그리고 OEM별 변형을 분석하고 해결함으로써, 이러한 역사적인 데이터의 디지털 아카이빙 및 접근성을 확보하는 데 기여했습니다. 이 작업은 과거 소프트웨어 유산을 보존하고 이해하는 데 중요한 의미를 가지며, 역설계 기술의 중요성을 다시 한번 상기시킵니다.

댓글 0

로그인이 필요합니다

댓글을 작성하거나 대화에 참여하려면 로그인이 필요합니다.

로그인 하러 가기

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!