맨위로가기

헥사 편집기

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

헥스 편집기는 파일의 원시 데이터를 16진수 값으로 표시하고 편집할 수 있는 소프트웨어 도구이다. 헥스 편집기를 사용하면 파일의 해석 방식과 관계없이 파일의 정확한 내용을 확인하고 수정할 수 있으며, 데이터 손상 수정, 실행 파일 패치, 템플릿 시스템을 통한 바이너리 파일 구조화된 표시, 스크립팅 및 플러그인 기능을 통한 기능 확장이 가능하다. 헥스 편집기는 운영체제별로 다양한 종류가 있으며, 텍스트 편집기나 통합 개발 환경에서도 헥스 편집 기능을 제공하기도 한다.

2. 상세

헥스 편집기는 사용자가 응용 소프트웨어가 파일을 해석하는 방식과 달리, 파일의 원시적이고 정확한 내용을 직접 보거나 편집할 수 있게 해주는 도구이다. 예를 들어, 이미지 편집 소프트웨어가 특정 파일 형식에 맞춰 이미지를 보여주는 것과 다르게, 헥스 편집기로는 해당 이미지 파일의 원시 데이터 자체를 볼 수 있다. 이는 파일 형식을 무시하고 파일의 내용을 일률적으로 다루기 때문이다.

이러한 특징 때문에 헥스 편집기는 다양한 용도로 활용된다. 시스템 오류나 응용 프로그램 문제로 인해 발생한 데이터 손상을 복구하는 데 사용될 수 있으며, 특히 일반적인 방법으로는 수정하기 어렵거나 별도의 복구 프로그램을 만드는 것이 비효율적일 때 유용하다. 또한, 특정 응용 프로그램이 자체적으로 설정한 편집 제한(데이터 검사) 때문에 오류 데이터를 수정하기 어려울 때, 이 제한을 우회하여 직접 데이터를 수정하는 데 사용되기도 한다.

과거에는 프로그램을 다시 컴파일하는 대신, 실행 파일의 특정 명령어를 몇 개 바꾸거나 추가하는 방식으로 프로그램을 수정하는 "패치" 작업에도 헥스 편집기가 사용되었다. 예를 들어, IBM 메인프레임 시스템에서는 프로그램 수정 사항을 배포할 때, 전체 프로그램을 새로 배포하는 대신 변경된 부분만 담은 패치 파일을 만들어 배포하기도 했다.

2. 1. 데이터 표현

일반적인 헥스 편집기의 화면. 16진수 값과 해당 ASCII 문자를 함께 보여준다.


대부분의 헥스 편집기 응용 프로그램에서 컴퓨터 파일의 데이터는 16진수 값으로 표시된다. 일반적으로 데이터는 4개의 바이트 그룹 4개(총 16바이트) 또는 8바이트 그룹 2개(총 16바이트)로 묶여 한 줄에 표시된다.

각 16진수 값 쌍(각 바이트)에 해당하는 16개의 인쇄 가능한 ASCII 문자가 16진수 값 옆에 함께 표시된다. 벨(Bell)과 같이 인쇄할 수 없는 ASCII 문자나 탭(Tab)처럼 하나 이상의 문자 공간을 차지하는 문자는 보통 점(`.`)으로 표시된다.

또한, 파일 내 데이터의 절대적인 위치를 나타내는 번지 정보(주소)가 각 줄의 시작 부분에 표시되는 경우가 많다. 이를 통해 사용자는 16진수 정보, 특정 문자 인코딩으로 변환된 텍스트 정보, 그리고 해당 데이터의 위치를 한눈에 파악할 수 있다.

2. 2. 크기 제한

기존 텍스트 편집기와 달리 헥스 편집기는 파일을 탐색하는 동안 파일의 일부만 불러오고 저장할 때 수정하므로, 사실상 크기 제한 없이 파일을 효율적으로 처리할 수 있다.

3. 역사

컴퓨터가 발명되고 다양한 용도로 사용되면서 다양한 파일 형식이 만들어졌다. 특수한 경우에는 일련의 원시 숫자로 데이터에 접근하는 것이 편리했다. IBM OS/360 시스템에는 원시 디스크 레코드를 편집하고 실행 파일 형식을 이해할 수 있는 SUPERZAP (AMASPZAP)라는 프로그램이 있었다.[1]

16진법 숫자 쌍(각 쌍은 1바이트를 나타낼 수 있음)이 현재 표준으로 자리 잡았다. 이는 오늘날 사용되는 대다수의 기계 및 파일 형식이 8비트 바이트 단위 또는 그룹으로 데이터를 처리하기 때문이다. 16진법과 8진법은 바이트 내에서 어떤 비트가 설정되었는지 확인하기 쉽기 때문에 널리 사용된다. 오늘날에는 템플릿 시스템이나 데이터 검사기와 같은 보조 도구들이 등장하면서, 사용자에게 익숙한 숫자 체계인 10진법 표현도 많이 사용되고 있다.

4. 고급 기능

헥사 편집기는 단순한 바이너리 파일의 16진수 값을 보여주고 수정하는 기본적인 기능 외에도, 파일 분석과 편집 작업을 더욱 효율적으로 수행할 수 있도록 돕는 여러 고급 기능을 제공하기도 한다. 대표적인 고급 기능으로는 템플릿 시스템, 스크립팅 시스템, 플러그인 시스템 등이 있다.

템플릿 시스템은 특정 파일 형식의 구조를 미리 정의하여, 사용자가 복잡한 오프셋 계산이나 데이터 형식 변환 없이도 의미 있는 단위로 데이터를 쉽게 확인하고 수정할 수 있게 돕는다. 스크립팅 시스템은 반복적인 편집 작업이나 파일 패치 등을 자동화하는 매크로스크립트를 작성하고 실행할 수 있는 환경을 제공한다. 플러그인 시스템은 외부 개발자가 만든 확장 기능을 헥사 편집기에 추가하여, 기본적으로 제공되지 않는 특수한 분석 도구나 편집 기능을 사용할 수 있게 한다. 이러한 고급 기능들은 사용자가 바이너리 데이터를 더욱 깊이 이해하고 정교하게 다룰 수 있도록 지원한다.

4. 1. 템플릿 시스템

간단한 템플릿 기반 헥스 에디터의 예.


일부 헥스 에디터는 원하는 파일 형식의 일부 또는 전부를 다루면서, 바이너리 파일의 바이트 시퀀스를 구조화된 방식으로 표시할 수 있는 템플릿 시스템을 제공한다. 일반적으로 템플릿의 GUI는 메인 헥스 에디터 옆에 있는 별도의 도구 창이다. 일부 치트 엔진 시스템은 이러한 템플릿 GUI로만 구성되기도 한다.

일반적으로 템플릿은 레이블이 지정된 텍스트 상자 목록으로 표시되며, 이를 통해 파일의 개별 값을 적절한 형식(예: 문자열, 색상 또는 10진수)으로 쉽게 편집할 수 있다. 템플릿 지원이 없으면 변경할 값이 저장된 파일 내의 올바른 오프셋을 찾아야 한다. 또한, 원시 헥스 편집에는 16진수를 10진수로 변환하거나, 바이트 순서 또는 기타 데이터 형식 변환의 특수성을 처리해야 할 수 있다.

템플릿은 파일로 저장하여 사용자가 교환할 수 있으며, 제조업체의 웹사이트를 통해 공개적으로 공유되는 경우가 많다. 대부분의 헥스 에디터는 자체 템플릿 파일 형식을 정의하며, 다양한 형식 간의 표준 또는 호환성을 지원하는 추세는 없다.

4. 2. 스크립팅 시스템

고급 헥사 편집기에는 사용자가 일반적인 작업을 자동화하기 위해 사용자 인터페이스 명령 시퀀스로 매크로와 같은 기능을 만들 수 있는 스크립팅 시스템이 있다. 이는 파일을 자동으로 패치하는 스크립트(예: 게임 치팅, 모딩 또는 커뮤니티에서 제공하는 제품 수정)를 제공하거나 더 복잡하거나 지능적인 템플릿을 작성하는 데 사용될 수 있다.

스크립팅 언어는 MS-DOS 배치 파일과 유사한 제품별 언어에서 Lua 또는 Python과 같은 완전한 스크립팅 언어를 지원하는 시스템에 이르기까지 매우 다양하다.

4. 3. 플러그인 시스템

몇몇 헥사 편집기는 그래픽 사용자 인터페이스(GUI)를 확장하고 새로운 기능을 추가할 수 있는 플러그인 시스템을 가지고 있다. 이러한 시스템은 일반적으로 C 호환 언어로 작성된 동적 링크 라이브러리(DLL)를 로드하는 방식으로 작동한다.

5. 헥스 편집기 종류

헥스 편집기는 유닉스, 리눅스, 윈도우, macOS 등 다양한 운영체제에서 사용할 수 있는 여러 종류의 프로그램이 존재한다.

5. 1. 유닉스/리눅스


  • Emacs: Hexl 모드로 사용
  • HexEdit
  • hex
  • hexdump: 열람 전용
  • hi
  • od: 열람 전용
  • [http://sourcepole.com/2006/9/7/hex-editors Hex Editors]
  • bvi
  • [https://www.rogoyski.com/adam/programs/hexedit/ [N]Curses Hexedit]

5. 2. 윈도우

5. 3. macOS


  • HexEdit
  • HexEditor
  • turboJetEdit


본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com