본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 시스템·유틸리티 · 윈도우즈 유틸

Imhex

0

ImHex는 WerWolv에서 개발한 16진수 편집기로, 역공학자, 프로그래머 및 야간 작업 시 눈 건강을 중시하는 사용자를 대상으로 합니다.

16진수 편집기Windows데이터 분석디스어셈블러역공학오픈소스패턴 언어

소개

ImHex는 WerWolv에서 개발한 16진수 편집기로, 역공학자, 프로그래머 및 야간 작업 시 눈 건강을 중시하는 사용자를 대상으로 합니다. 이 소프트웨어는 GPU 가속을 지원하는 현대적인 인터페이스를 제공하며, 패턴 언어, 데이터 프로세서, 디스어셈블러 등 고급 분석 기능을 통합했습니다. Windows 7 이상에서 실행 가능하며, 공식 소스 코드는 GitHub 저장소에서 확인할 수 있습니다.

상세정보

프로그램 소개/무엇인지

ImHex는 역공학, 프로그래밍, 데이터 분석을 위한 전문 16진수 편집기입니다. WerWolv에서 개발 및 유지보수하며, GPU 가속 렌더링을 통해 장시간 사용 시 눈 피로를 최소화하는 다크 모드 인터페이스를 제공합니다. 이 소프트웨어는 단순한 바이트 편집을 넘어, 패턴 언어 기반 데이터 파싱, 노드 기반 데이터 프로세서, 내장 디스어셈블러 등을 통합한 종합 분석 도구입니다.

주요 기능

기능적인 16진수 보기

ImHex의 핵심은 바이트 패칭, 무한 실행 취소/다시 실행, 다양한 형식으로 바이트 복사(헥스 문자열, C/C++/Rust 배열 등), 간단한 문자열 및 헥스 검색, 커서 기반 이동, 구성 가능한 포그라운드 및 백그라운드 하이라이트 규칙을 지원합니다. 데이터는 헥스 정수, 부호 있는/없는 소수 정수, 부동소수점, RGBA8 색상, 바이너리 등으로 표시할 수 있으며, UTF-8, UTF-16, ShiftJIS 등 다양한 인코딩으로 디코딩 가능합니다.

커스텀 C++-like 패턴 언어

내장된 패턴 언어는 MIME 타입과 매직 값 기반으로 자동 로드되며, 배열, 포인터, 구조체, 공용체, 열거형, 비트필드, 네임스페이스, 엔디안 조건 등을 지원합니다. 이 언어를 통해 이미지, 오디오, 3D 모델, 좌표, 타임스탬프 등 다양한 데이터 유형을 시각화할 수 있습니다.

노드 기반 데이터 프리프로세서

데이터 프리프로세서는 소스를 수정하지 않고 데이터를 변환, 복호화, 디코딩할 수 있는 노드 기반 그래프를 제공합니다. 사용자는 커스텀 노드를 추가하여 AES 복호화, 헥스 디코딩, 이미지 시각화 등 복잡한 데이터 처리 파이프라인을 구성할 수 있습니다.

다양한 데이터 소스 지원

ImHex는 로컬 파일, 원시 디스크, GDB 서버(실행 중 프로세스 RAM 접근), Intel Hex/Motorola SREC, Base64, UDP 패킷, 원격 파일 over SSH/SFTP 등 다양한 소스에서 데이터를 로드할 수 있습니다. 특히 huge 파일에 대한 효율적인 로딩과 프로세스 메모리 전체 주소 공간 검사가 가능합니다.

데이터 검색 및 해시 지원

문자열 추출(최소 길이, 문자 집합, 인코딩 지정), 시퀀스 검색, 정규식 검색, 바이너리 패턴(와일드카드 지원), 숫자 값 검색(범위, 엔디안, 정렬 무시 옵션) 등을 지원합니다. 또한 CRC8/16/32, MD5, SHA 계열, Adler32, MurmurHash, xxHash, Blake2 등 다양한 해시 알고리즘을 제공하며, 데이터의 특정 영역 또는 임의 문자열에 대한 해시 계산이 가능합니다.

디스어셈블러 및 난해한 기호 복원

Capstone 기반 내장 디스어셈블러는 ARM, x86, PowerPC, SPARC, SystemZ, RISC-V, WebAssembly 등 다수 아키텍처를 지원하며, 사용자 정의 디스어셈블러 작성도 가능합니다. 또한 LLVM 기반 Itanium, MSVC, Rust, D-Lang 디맹글러를 제공하여 컴파일된 기호를 복원할 수 있습니다.

북마크 및 데이터 분석 도구

사용자는 이름과 색상이 있는 북마크를 추가하고, 해당 영역을 하이라이트하며 이동할 수 있습니다. 북마크 내용은 새 탭에서 열 수 있고, 주석을 추가할 수 있습니다. 또한 파일 매직 기반 MIME 타입 데이터베이스, 바이트 타입 분포 그래프, 엔트로피 그래프, 최고/평균 엔트로피, 암호화/압축 파일 탐지, 디그램 및 레이어드 분포 그래프 등을 제공하는 데이터 분석 및 시각화 도구가 포함됩니다.

YARA 규칙 지원

공식 YARA 규칙을 사용하여 파일의 취약점을 스캔하고, 매치를 헥스 편집기에서 하이라이트하며 이동할 수 있습니다. 여러 규칙을 동시에 적용할 수 있습니다.

도움말 도구 및 부가 기능

ImHex는 수학 표현 계산기, 그래프 계산기, 헥스 컬러 피커, base 변환기, 바이트 스왑퍼, UNIX 권한 계산기, 위키피디아 용어 검색기, 파일 분리기/결합기/쇄도기, IEEE754 부동소수점 시각화기, TCP 클라이언트/서버, HTTP 요청 도구 등을 내장합니다. 또한 패턴 파일, 매직 파일, 인코딩, 테마, YARA 규칙 등을 앱 내 업데이터를 통해 직접 다운로드할 수 있습니다.

다운로드·설치 방법

Windows 사용자는 공식 GitHub 릴리스 페이지에서 zip 형식의 설치 파일을 다운로드할 수 있습니다. 다운로드 후 압축을 해제하고 실행 파일을 직접 실행하면 설치는 완료됩니다. 별도의 설치 관리자 없이도 즉시 사용 가능하며, 관리자 권한이 필요하지 않습니다. 최신 버전은 GitHub 릴리스 페이지에서 확인할 수 있습니다.

기본 사용법/명령어

ImHex를 실행하면 기본적으로 헥스 편집기 뷰가 표시됩니다. 파일을 열려면 메뉴바의 ‘File’ → ‘Open’ 또는 드래그 앤 드롭을 사용합니다. 데이터 검사는 Ctrl+F로 검색 바를 열고, 문자열, 헥스, 정규식 등 검색 유형을 선택할 수 있습니다. 패턴 언어를 사용하려면 ‘Pattern Editor’ 탭에서 C++ 스타일의 구조체를 정의하고 적용할 수 있습니다. 데이터 프로세서는 ‘Data Processor’ 탭에서 노드를 추가하고 연결하여 변환 파이프라인을 구성할 수 있습니다. 북마크는 우클릭 → ‘Add Bookmark’ 또는 단축키로 추가할 수 있으며, 이름과 색상을 지정할 수 있습니다. 디스어셈블러는 ‘Disassembler’ 탭에서 대상 아키텍처를 선택하고 분석할 수 있습니다.

이런 경우에 유용합니다

역공학자는 ImHex를 사용하여 악성코드 바이너리의 구조를 분석하거나, 펌웨어 이미지에서 숨겨진 데이터를 추출할 수 있습니다. 프로그래머는 디버깅 시 메모리 덤프를 검사하거나, 사용자 정의 패턴 언어로 특정 파일 형식의 구조를 시각화할 수 있습니다. 포렌식 분석가는 디스크 이미지나 네트워크 덤프에서 암호화된 파일을 찾아내기 위해 데이터 프로세서와 AES 복호화 노드를 결합할 수 있습니다. 취약점 연구자는 YARA 규칙을 적용하여 알려진 악성 패턴을 신속히 탐지하고, 디스어셈블러로 공격 코드의 동작 원리를 분석할 수 있습니다.

지원 환경·시스템 요구사항

ImHex는 Windows 7 이상에서 실행 가능하며, Windows 10/11 사용을 권장합니다. GPU 가속을 위해 OpenGL 3.0 이상을 지원하는 그래픽 카드가 필요하지만, 통합 Intel HD GPU의 특정 드라이버에서는 그래픽 아티팩트가 발생할 수 있으므로 가능한 경우 전용 GPU 사용을 권장합니다. GPU가 없는 환경에서는 소프트웨어 렌더링 버전(-NoGPU suffix)을 사용할 수 있으나 성능이 낮아질 수 있습니다. 최소 RAM 50MiB, 저장 공간 100MiB 이상이 필요하며, 공식적으로 x86, AMD64, ARM64 CPU를 지원합니다. 리틀 엔디안 CPU라면 추가 호환성이 기대됩니다.

최신 버전·업데이트

현재 버전은 1.38.1이며, 최신 업데이트 정보는 GitHub 저장소의リリース 페이지에서 확인할 수 있습니다. 버전 히스토리 및 변경 사항은 동일한 페이지에서 제공됩니다.

제한 사항·확인 사항

Windows에서 통합 Intel HD GPU 사용 시 특정 드라이버 버전에서 그래픽 아티팩트가 발생할 수 있습니다. 이 경우 전용 GPU 사용 또는 소프트웨어 렌더링 버전을 고려해야 합니다. 패턴 언어나 데이터 프로세서의 고급 기능은 초기 학습 곡선이 존재하며, 복잡한 분석을 수행하려면 공식 문서나 예제 파일을 참조하는 것이 좋습니다. macOS 릴리스는 현재 GitHub에서 macOS 15 이상용 CI 러너가 없어서 서명되지 않은 바이너리로 제공되며, 수동 보안 허용이 필요합니다.

화면으로 보는 주요 기능

Hex 편집기 및 데이터 검사기

Hex 편집기 및 데이터 검사기

이미지는 Imhex 소프트웨어의 주 화면을 보여줍니다. 왼쪽에는 'Hex editor' 탭이 열려 있고, 이진 데이터가 16진수와 ASCII 형태로 표시되어 있습니다. 중앙에는 'Data Inspector' 탭이 열려 있으며, 선택된 데이터의 다양한 형식(예: Binary, int8_t, int16_t 등)으로 해석된 값을 보여줍니다. 오른쪽에는 'Pattern editor' 탭이 열려 있고, C++ 스타일의 스펙 정의 코드가 표시되어 있습니다. 하단에는 'Pattern Data' 테이블이 있으며, 'peHeader', 'signature', 'architecture' 등의 데이터 구조 요소와 그 시작 주소, 크기, 유형이 나열되어 있습니다. 하단에는 'Console', 'Environment', 'Settings', 'Sections', 'Debugger' 탭이 있는 탭바가 있습니다.

데이터 정보 및 데이터 프로세서

데이터 정보 및 데이터 프로세서

이미지는 Imhex의 'Data Information' 탭을 보여줍니다. 왼쪽에는 'Bookmarks' 패널이 있으며, 'Header'와 'Encrypted Data'라는 두 개의 북마크가 있습니다. 중앙에는 'Entire Data'에 대한 'Count'와 'Value'를 보여주는 그래프, 'Byte types'를 보여주는 색상 그래프, 그리고 'Entropy'를 보여주는 그래프가 있습니다. 오른쪽에는 'Pattern editor' 탭이 열려 있고, 'Strings', 'Sequences', 'Regex', 'Binary Pattern', 'Numeric Value' 탭이 있습니다. 'Search' 버튼과 'Reset' 버튼이 있으며, 검색 결과가 표시되어 있습니다. 하단에는 'Data Processor' 탭이 있으며, 'Integer'와 'RGBA8 Image Visualizer'라는 노드가 연결되어 있습니다.

데이터 프로세서 그래프

데이터 프로세서 그래프

이미지는 Imhex의 'Data Processor' 탭을 보여줍니다. 화면에는 여러 노드가 연결된 그래프가 있습니다. 'String' 노드에서 'Hexadecimal decoder' 노드로 데이터가 흐르고, 'AES Decrypter' 노드로 연결됩니다. 'AES Decrypter' 노드는 'GCM', '128 Bits', 'Key length' 등의 설정을 가지고 있습니다. 'AES Decrypter'의 출력은 'RGBA8 Image Visualizer' 노드로 연결됩니다. 하단에는 'Continuous evaluation' 상태 표시가 있습니다.

STL 모델 시각화 및 패턴 에디터

STL 모델 시각화 및 패턴 에디터

이미지는 Imhex의 'Hex editor' 탭을 보여줍니다. 왼쪽에는 이진 데이터가 16진수와 ASCII 형태로 표시되어 있습니다. 중앙에는 STL 모델의 3D 시각화가 되어 있으며, 모델의 좌표(X, Y, Z)가 표시되어 있습니다. 오른쪽에는 'Pattern editor' 탭이 열려 있고, C++ 스타일의 스펙 정의 코드가 표시되어 있습니다. 하단에는 'Pattern Data' 테이블이 있으며, 'model'과 'stl'이라는 데이터 구조 요소와 그 시작 주소, 크기, 유형이 나열되어 있습니다. 하단에는 'Console', 'Environment', 'Variables', 'Settings', 'Sections', 'Debugger' 탭이 있는 탭바가 있습니다.

시스템 요구사항

별도의 시스템 요구사항이 등록되지 않았습니다.