프로젝트 소개

ImHex는 리버스 엔지니어, 프로그래머, 그리고 늦은 밤 원시 데이터를 다루는 사람들을 위한 오픈소스 헥스 에디터입니다. Dear ImGui로 구축된 현대적인 그래픽 인터페이스를 갖추고 있으며, 안정 버전, 나이틀리 버전, 웹 버전을 제공합니다. 데스크톱 애플리케이션은 Windows, macOS, Linux, FreeBSD를 지원하며, 릴리스에는 OpenGL 3.0 호환 그래픽 하드웨어가 없는 시스템을 위한 소프트웨어 렌더링 "NoGPU" 빌드도 포함됩니다. 주요 편집 환경에는 바이트 패치, 패치 관리, 무한 실행 취소/재실행, 유연한 복사 명령이 포함됩니다. 데이터는 원시 바이트, 헥스 문자열, C, C++, C#, Rust, Python, Java, JavaScript 등의 언어 배열, ASCII 아트 헥스 뷰, 또는 자체 포함 HTML로 복사할 수 있습니다. 검색은 단순 텍스트 및 헥스, 정규식, 와일드카드가 있는 바이너리 패턴, 숫자 값 범위, 문자열 추출을 지원합니다. 편집기는 또한 시작, 끝, 커서 위치에서의 이동, 페이징 뷰, 여러 색상 강조 규칙을 지원합니다. ImHex에는 파일 내용을 파싱하고 강조 표시하기 위한 C++ 유사 커스텀 패턴 언어가 포함되어 있습니다. 배열, 포인터, 구조체, 공용체, 열거형, 비트필드, 네임스페이스, 리틀/빅 엔디언, 조건문, 유용한 오류 메시지를 지원합니다. 패턴 언어는 이미지, 오디오, 3D 모델, 좌표, 타임스탬프를 시각화할 수 있습니다. 패턴 파일, 라이브러리, 매직 파일, 인코딩, 테마, 프로세서 노드, YARA 규칙은 ImHex 데이터베이스에서 내장 콘텐츠 업데이터를 통해 다운로드할 수 있습니다. 데이터 인스펙터는 바이트를 부호 있는/없는 정수, 부동소수점, LEB128 값, ASCII/와이드/UTF-8 문자열, 타임스탬프, GUID, 색상 등으로 해석할 수 있습니다. 바이트 복사 및 수정, 사용하지 않는 행 숨기기, 패턴 언어를 통한 사용자 정의 타입 추가를 지원합니다. 노드 기반 데이터 전처리기를 통해 사용자는 기본 소스를 변경하지 않고도 헥스 에디터에 표시되기 전에 데이터를 수정, 복호화, 디코딩할 수 있습니다. 사용자 정의 노드를 추가할 수 있습니다. 데이터는 로컬 파일, 원시 디스크 및 파티션, GDB 서버 메모리, Intel HEX 및 Motorola SREC 형식, Base64, UDP 패킷, 프로세스 메모리, SSH/SFTP를 통한 원격 파일 등 다양한 소스에서 로드할 수 있습니다. 대용량 파일은 효율적인 로딩을 위해 페이징 뷰로 처리됩니다. 비교 뷰는 서로 다른 소스의 데이터를 비교하고, 차이점을 강조 표시하며, 차이점 테이블을 제공합니다. 통합 디스어셈블러는 Capstone을 기반으로 하며 ARM, ARM64, MIPS, x86, PowerPC, SPARC, RISC-V, WebAssembly 등의 아키텍처를 지원합니다. 사용자 정의 디스어셈블러를 추가할 수 있습니다. 분석 도구에는 파일 매직 감지, MIME 타입 데이터베이스, 바이트 분포 그래프, 엔트로피 그래프, 최고/평균 엔트로피 값, 암호화/압축 파일 감지, 다이그램/계층 분포 그래프가 포함됩니다. YARA 규칙을 실행하여 취약한 파일을 스캔하고, 일치 항목을 강조 표시하며, 결과로 이동할 수 있습니다. 북마크는 사용자 정의 이름, 색상, 주석, 강조 표시, 이동, 새 탭에서 북마크 내용 열기를 지원합니다. 해싱 도구에는 사용자 정의 다항식을 사용하는 CRC8/16/32, MD5, SHA 계열, Adler32 및 기타 여러 알고리즘이 포함되며, 선택한 영역이나 임의 문자열에 적용됩니다. 유용한 유틸리티 세트가 포함되어 있습니다: LLVM 기반 Itanium/MSVC/Rust/D 디맹글러, ASCII 테이블, 정규식 대체기, 계산기, 그래프 계산기, 16진수 색상 선택기, 진법 변환기, 바이트 스와퍼, UNIX 권한 계산기, IEEE754 부동소수점 시각화기, 파일 분할/결합/파쇄기, TCP 클라이언트/서버, HTTP 요청 도구 등. 인터페이스는 여러 워크스페이스, 사용자 정의 레이아웃, 분리 가능한 창을 지원합니다. 초보자는 단순화 모드, 대화형 튜토리얼, 업적, 문서를 사용할 수 있습니다. ImHex는 플러그인을 지원합니다. SDK는 로컬에서 빌드하거나 GitHub Actions에서 가져올 수 있으며, 플러그인 템플릿이 제공됩니다. 프로젝트는 대부분 GPLv2-only 라이선스이며, libimhex와 UI 플러그인 라이브러리는 독점 플러그인을 허용하기 위해 LGPLv2.1입니다. 시스템 요구 사항은 약 50 MiB RAM과 100 MiB 저장 공간으로 modest하며, 일반 릴리스에는 OpenGL 3.0이 권장됩니다. 프로젝트는 여러 언어로 번역되었으며 기여를 환영합니다.