---
title: "헥스 에디터는 바이트에 색을 입혀야 한다 — 신택스 하이라이팅이 코드에 필수이듯"
published: 2026-04-21T09:52:09.000Z
canonical: https://jeff.news/article/1895
---
# 헥스 에디터는 바이트에 색을 입혀야 한다 — 신택스 하이라이팅이 코드에 필수이듯

단색 헥스덤프에서는 패턴이 보이지 않는다. 바이트 상위 니블마다 다른 색을 입히면 파일 포맷의 구조, 압축 데이터의 특성, 심지어 4비트 비트맵의 이미지 윤곽까지 육안으로 파악할 수 있다. 글쓴이는 18개 색상 그룹을 제안하며, 직접 Rust로 hexapoda라는 헥스 에디터도 만드는 중이다.

- 헥스 에디터가 바이트를 단색으로만 보여주는 건 인간 뇌의 패턴 인식 능력을 낭비하는 짓임 — 코드에 신택스 하이라이팅이 필수듯 헥스덤프에도 색상이 필요함
  - 글쓴이(alice pellerin)는 바이트 하나하나에 색을 입히면 파일 구조가 눈에 뚜렷이 들어온다는 주장
  - 단색 헥스덤프에서 특정 바이트(예: 단 하나뿐인 `C0`)를 찾으라고 하면 눈알 빠짐. 색상 입히면 5초 컷

### 색이 있고 없고의 차이 — 네 가지 실제 예시

- 예시 1 · KPS 파일 (Fossil Fighters 닌텐도 DS 게임 데이터)
  - 매직 바이트 `KPS` 뒤로 0~999(0x3E7) 범위의 리틀엔디안 32비트 정수가 연달아 있음
  - 색을 입히면 상위 두 바이트가 전부 `00 00`이라는 게 한눈에 보임 → 작은 정수들이라는 사실을 즉시 파악
  - 0x18 간격으로 숫자가 증가하는 패턴도 바로 감지됨

- 예시 2 · DAL 파일 — 인덱스 테이블이 들어있는 포맷
  - 32비트 정수가 점점 커지는 시퀀스(파일 후반부 구조체를 가리키는 인덱스)
  - 거의 등간격으로 증가하는 값들이 **레인보우 그라디언트**로 시각화됨. 그림 보듯이 구조 파악 가능

- 예시 3 · 허프만 압축 데이터 (NDS BIOS 호환)
  - 앞쪽 0x20 바이트는 허프만 트리 (대부분 `00~0F`, 일부 `80대`/`C0대`)
  - 뒤쪽 0x90 바이트는 압축된 비트스트림 (`00~FF` 전 범위에 고르게 분포)
  - 색상으로 보면 "트리 영역"과 "압축 데이터 영역"의 경계가 명확히 갈림
  - 압축 데이터가 유난히 "화려하고 카오스"한 이유 → 좋은 압축 알고리즘의 출력은 시각적으로 랜덤처럼 보인다는 사실을 체감

- 예시 4 · 4비트 컬러 인덱스 비트맵 (Fossil Fighters에서 땅 파는 구멍 이미지)
  - 헥스 숫자 한 자리 = 픽셀 하나에 해당
  - 색을 입히면 **헥스덤프 자체에서 이미지 윤곽이 보임**. 오른쪽 아래 하이라이트까지 잡힘

> [!IMPORTANT]
> 압축된 데이터가 색으로 보면 "거의 무작위"처럼 보이는 건 압축 품질의 시각적 증거임. 알고리즘이 패턴을 다 뽑아먹었다는 뜻

### 색상 그룹은 몇 개가 적당한가

- 기존 도구들(hexyl 등)은 보통 5개 카테고리로 분류
  - NULL(`0x00`), ASCII 출력 가능, ASCII 공백, ASCII 제어문자, 비-ASCII(`0x80~0xFF`)
  - 스크롤 시 방향감각 유지엔 충분하지만, 세밀한 패턴은 안 보임

- 글쓴이는 **18개 그룹**으로 확장 — 상위 니블(`0X`, `1X`, `2X`...)마다 하나씩 + `00`/`FF` 전용 2개
  - ASCII 텍스트가 단일 시안색이 아니라 "초록+주황의 얼룩무늬"로 보임
  - UTF-8 비-ASCII는 단일 회색 대신 고유 패턴으로 식별 가능
  - 2의 보수 음수(`BD FF FF FF`), 머신 코드, 암호화 데이터, 컬러 팔레트, 변환 행렬까지 각자 시그니처가 생김

### 지금 쓸 수 있는 도구들

- 헥스 뷰어
  - `hexyl` — 기본은 카테고리, 그라디언트 옵션 있음
  - `xcd-rgb` — 풀 레인보우 바이트 컬러링
  - `hevi` — 특정 파일 포맷의 섹션을 색으로 표시
  - `xxd` — 카테고리 색상 옵션 있음 (기본은 꺼짐)

- 헥스 에디터
  - `Hexerator` — 풀 레인보우 + 기능 풍부
  - `REHex` — 여러 색상 옵션 (커스텀 포함), 기본 꺼짐
  - `Hex Fiend` — 카테고리 옵션 있음, 커스텀 색상도 손대면 가능

- 글쓴이가 직접 만드는 중인 `hexapoda` — Rust + Ratatui 기반
  - Helix/Teehee 영향 받은 모달 에디팅, 멀티 커서, selection-first 조작
  - 아직 개인용이지만 관심 있으면 공개 가능성 있음

> [!TIP]
> 헥스 에디터를 직접 개발하거나 기여하고 있다면 색상 그룹 늘리는 feature request는 비용 대비 효과가 압도적임. 최소한 `00` 바이트를 흐리게라도 처리하면 가독성이 확 올라감

## 핵심 포인트

- 단색 헥스덤프는 인간의 시각 패턴 인식 능력을 낭비하는 UI다
- Fossil Fighters 파일 포맷 분석 예시 4가지로 색상의 효과를 입증 — 인덱스 테이블, 허프만 트리와 비트스트림 경계, 4비트 컬러 비트맵 등
- 기존 hexyl의 5개 카테고리보다 상위 니블 기반 18개 그룹이 더 세밀한 패턴을 드러냄
- 압축된 데이터가 시각적으로 랜덤처럼 보이는 것은 압축 품질의 증거
- hexyl, Hexerator, REHex, Hex Fiend 등 기존 도구 외에 글쓴이가 Rust+Ratatui로 hexapoda 제작 중

## 인사이트

리버스 엔지니어링, 게임 포맷 분석, 임베디드 펌웨어 디버깅 하는 사람이라면 즉시 체감할 만한 글이다. 바이트를 색으로 본다는 발상 자체가 '코드에 신택스 하이라이팅이 없던 시절'을 떠올리게 한다.
