최근 수정 시각 : 2025-11-21 09:31:12

바이너리 에디터

파일:imhex.png
ImHex
1. 개요2. 특징
2.1. 기능
3. 목록4. 관련 문서

1. 개요

binary editor

임의의 바이너리 파일을 읽고 수정할 수 있는 에디터의 종류. 텍스트 파일만 읽고 수정할 수 있는 텍스트 에디터와 대비되는 개념이다.

흔히 헥스 에디터 등으로도 불린다.

2. 특징

단순히 파일을 보여줄 뿐인 바이너리 뷰어, 헥스 뷰어 등과는 다르며, 적절한 편집 기능이 있어야 한다. 일반적으로 바이너리 에디터는 바이너리 뷰어의 기능도 대부분 포함한다.

2.1. 기능

상술한 대로 바이너리 뷰어의 기능 또한 일부 나열되어 있다.
  • 다양한 진법 변환, 분석, 보기 등. 주로 2진법16진법을 필수적으로 지원하며, 헥스 에디터라 불리는 것도 이 때문. 개별 바이트를 출력 가능한 아스키 문자로 변환 가능할 경우 이를 옆에 표시하기도 한다.
  • 구문 강조. 당연히 텍스트 에디터의 프로그래밍 언어 하이라이팅 같은 게 아니고, 바이트가 특정 범위에 속하면 해당 색을 칠하는 단순한 식이다. 가령 00은 검은색, 아스키 범위라면 파란색, 출력 불가능하면 노란색 등으로 칠하는 식이다.
  • 선택한 특정 영역의 값 수정, 값 입력 등. 주로 span 단위로 선택하고 이를 정수로 파싱해서 수정할 수 있는 칸이 따로 생긴다.
  • 오프셋 이동. 바이너리 파일이 아주 길거나 섹션 단위로 나누어진 포맷일 경우, 알려진 인덱스(또는 offset)를 통해 맨 앞에서부터 시작해 중간 지점으로 이동할 필요가 있다. 좋은 에디터들은 내부적으로 이런 오프셋 마커를 저장하기도 하는데, 일종의 북마크처럼 쓸 수 있다.
  • 검색 및 치환. 텍스트 검색에 정규 표현식을 사용하는 것처럼 특정 고급 패턴을 사용해 검색할 수 있는 에디터도 존재한다.
  • 엔디언 변환.
  • 텍스트 파일의 diff와 비슷하게 바이너리 파일을 비교하고 diff를 딸 수 있다.
  • 파일 시그니처 감지 및 분석.
  • 바이너리 파싱. Imhex 등 고급 툴 등에서 볼 수 있는 기능이다. 기본적으로 parser combinator랑 비슷한데, 개별적인 원자 파서를 사용해서 분석할 바이너리 파일의 포맷을 기술하는 방식이다.
  • 고급 에디터의 경우 디버거, 디스어셈블러와 같은 기능을 일부 내장하거나 사실상 리버싱 툴과 다름없는 경우도 존재한다.

3. 목록

4. 관련 문서