4P by neo 4달전 | favorite | 댓글 1개

역공학자, 프로그래머, 그리고 새벽 3시에 작업하는 사람들을 위한 Hex 에디터

지원

  • GitHub Sponsors, Patreon, PayPal을 통해 지원 가능

스크린샷

  • 추가 스크린샷 제공

기능

풍부한 Hex 보기

  • 바이트 패칭, 패치 관리, 무한 Undo/Redo
  • 다양한 형식으로 바이트 복사
  • 간단한 문자열 및 Hex 검색
  • 시작, 끝, 현재 커서 위치로 이동
  • 다채로운 하이라이팅
  • 다양한 데이터 유형으로 표시
  • ASCII 및 사용자 정의 인코딩으로 데이터 디코딩
  • 페이지 데이터 보기

C++ 유사 패턴 언어

  • MIME 타입 및 매직 값 기반 자동 로딩
  • 다양한 데이터 유형 시각화 지원
  • 유용한 에러 메시지, 구문 강조 및 에러 표시

테마 지원

  • 야간 모드 기본, 사용자 정의 색상 및 스타일 지원
  • 사용자 정의 폰트 지원

데이터 가져오기 및 내보내기

  • Base64 파일, IPS 및 IPS32 패치, Markdown 보고서

데이터 검사기

  • 다양한 유형으로 데이터 해석
  • 바이트 복사 및 수정
  • 새로운 데이터 유형 추가 지원

노드 기반 데이터 전처리기

  • 데이터 수정, 암호 해독 및 디코딩
  • 사용자 정의 노드 추가 지원

다양한 데이터 소스 로딩

  • 로컬 파일, Raw 디스크, GDB 서버, Intel Hex 및 Motorola SREC 데이터, 프로세스 메모리

데이터 검색

  • 파일 전체 또는 선택 영역 검색
  • 문자열 추출, 시퀀스 검색, 정규 표현식 검색, 바이너리 패턴, 숫자 값 검색

데이터 해싱 지원

  • 다양한 알고리즘 사용 가능
  • 특정 영역 및 임의 문자열 해싱

디핑 지원

  • 다른 데이터 소스 비교
  • 차이점 하이라이팅 및 테이블 보기

통합 디스어셈블러

  • Capstone이 지원하는 모든 아키텍처 지원

북마크

  • 사용자 정의 이름 및 색상 지원
  • 북마크 영역 하이라이팅 및 북마크로 이동

데이터 분석기 및 시각화 도구

  • 파일 매직 기반 파일 파서 및 MIME 타입 데이터베이스
  • 바이트 유형 분포 그래프, 엔트로피 그래프

YARA 규칙 지원

  • 공식 YARA 규칙으로 파일 스캔
  • 매치 하이라이팅 및 매치로 이동

유용한 도구

  • 다양한 디맹글러, ASCII 테이블, 정규 표현식 교체기, 수학 표현식 평가기, 그래핑 계산기, 색상 선택기, 베이스 변환기, 바이트 스와퍼, UNIX 권한 계산기, Wikipedia 용어 정의 찾기, 파일 유틸리티, IEEE754 Float 시각화기, TCP 클라이언트/서버, 유클리드 알고리즘 계산기

내장 콘텐츠 업데이트

  • 데이터베이스에서 파일 다운로드

현대적인 인터페이스

  • 다중 작업 공간 및 사용자 정의 레이아웃 지원
  • 분리 가능한 창

쉽게 시작하기

  • 다양한 언어 지원, 초보자용 간소화 모드, 광범위한 문서화, 데이터베이스의 많은 예제 파일, 인터랙티브 튜토리얼

패턴 언어

  • C 유사 구문으로 구조 및 데이터 유형 정의
  • 파일 콘텐츠 파싱 및 하이라이팅

데이터베이스

  • 형식 패턴, 라이브러리, 매직 및 상수 파일

요구 사항

  • GPU가 필요하며, OpenGL 3.0 지원 필요
  • Windows, macOS, Linux 지원

설치

  • 설치 가이드 참고

컴파일

  • GCC 또는 Clang 필요, C++23 이상 지원

기여

  • 기여 가이드 참고

플러그인 개발

  • 템플릿 프로젝트 사용

크레딧

  • 주요 기여자 및 사용된 라이브러리 감사

라이선스

  • 대부분 GPLv2-only 라이선스, 일부 LGPLv2.1 라이선스

GN⁺의 의견

  • ImHex는 역공학 및 프로그래밍 작업에 매우 유용한 도구임. 특히 다양한 데이터 유형을 시각화하고 분석할 수 있는 기능이 뛰어남.
  • 야간 모드와 같은 사용자 친화적인 기능이 있어, 장시간 작업에도 눈의 피로를 줄일 수 있음.
  • 다양한 데이터 소스와의 호환성 덕분에 여러 환경에서 활용 가능함.
  • 유사한 기능을 가진 다른 도구로는 HxD, 010 Editor 등이 있음.
  • 새로운 기술이나 오픈 소스를 채택할 때는 해당 기술의 장단점을 충분히 고려해야 함. 예를 들어, ImHex의 경우 GPU 지원이 필수적임.
Hacker News 의견
  • ImHex는 지금까지 사용해본 최고의 헥스 에디터임

    • 파일 템플릿 기능으로 알려진 파일 유형의 섹션을 자동으로 강조 표시함
    • 선택한 바이트를 다양한 데이터 유형으로 동시에 해석해 보여줌
    • 대용량 파일 사용 시 다른 에디터보다 훨씬 빠름
    • 단점으로는 imgui UI가 가끔 버그가 있음
  • 이 에디터가 CP437 글리프로 ASCII 바이트를 표시하는 방법이 있는지 궁금함

    • DOS에서 이 방식으로 바이너리 파일을 읽었고, 헥스 값보다 글리프를 더 빨리 읽을 수 있음
    • 비인쇄 문자를 점으로 표시하는 것은 많은 정보를 제공하지 않음
  • ImHex를 시도해봤지만 너무 복잡했음

    • macOS에서는 여전히 Hex Fiend를 선호함
    • 단순하고 빠르며 원하는 기능을 제공함
    • Windows에서는 아직 완벽한 "단순한" 헥스 에디터를 찾지 못함
  • 패턴 언어가 매우 유용하며 학습에 큰 도움이 됨

    • 이 프로그램을 사랑함
  • ImHex는 일반적으로 OpenGL 3.0을 지원하는 GPU가 필요함

    • 헥스 에디터가 왜 OpenGL이 필요한지 궁금함
    • OpenGL이 필요한 이유가 있는지 아니면 단순히 멋을 위한 것인지 궁금함
  • ImHex가 좋아 보임

    • 010 Editor의 와일드카드 검색 기능을 사용하지만, ImHex도 그 기능을 제공함
    • 더 많은 기능을 제공하므로 테스트해볼 예정임
  • 컴퓨터 문화의 이 영역을 매우 좋아함

    • 리버스 엔지니어링, 커널 모듈 작성, 작동 원리 파악 및 설계되지 않은 기능 수행 등
    • 그러나 이를 합법적으로 수행할 수 있는 방법이 드물고 많은 시간과 동료의 도움이 필요함
  • 이 프로젝트는 매우 훌륭함

    • Philips 스마트 시계의 ROM을 조작하는 데 많은 재미를 느꼈음
    • Rust와 유사한 내장 DSL이 있어 메모리 관리 없이도 매우 가벼움
    • 이를 통해 바이너리 스트림에서 구조적 데이터를 시각화하고 추출할 수 있음
    • 코드 없이 간단한 계산을 할 수 있는 시각적 에디터도 있음
    • 시도했을 때는 다소 미완성 느낌이었음
    • DSL로 코드를 작성하는 것이 더 직관적이고 쉬웠음
  • 현재는 010 Editor를 계속 사용할 예정임

    • 지금까지 사용해본 헥스 에디터 중 가장 놀라운 에디터임
    • 새로운 프로젝트에서 사용하는 GUI 프레임워크(Dear ImGui)를 좋아하지 않음
    • 작은 화면과 창 관리자 없는 임베디드 시스템을 위한 것이며, 데스크탑 환경에서는 UI 통합 부족으로 어색한 경험을 제공함
  • 이 프로젝트가 꽤 멋져 보임

    • 헥스 에디터를 프로젝트로 개발하는 것이 좋은 아이디어인지 궁금함
    • 간단한 헥스 에디터는 어렵지 않지만, 파일 형식을 파싱하는 등 연습할 수 있는 많은 공간이 있음
    • 리버스 엔지니어링 도구를 개발할 여지도 많음