소개
HT Editor는 Stefan Weyergraf와 Sebastian Biallas가 개발한 파일 뷰어, 편집기 및 분석기입니다. 텍스트, 바이너리 및 특히 실행 파일을 지원하며, GNU General Public License 버전 2 하에 배포되는 무료 소프트웨어입니다. 이 프로그램은 다양한 실행 파일 형식의 헤더, 섹션, 심볼 테이블 등을 분석하고, 인터랙티브한 코드 및 데이터 분석 기능을 제공합니다.
상세정보
지원 파일 형식
HT Editor는 다음과 같은 다양한 실행 파일 형식을 지원합니다:
- COFF/XCOFF32 (공통 객체 파일 형식)
- ELF (실행 가능 및 연결 가능한 형식)
- LE (선형 실행 파일)
- MZ (표준 DOS 실행 파일)
- NE (새로운 실행 파일)
- PE32/PE64 (포터블 실행 파일)
- CLASS (자바 클래스 파일)
- MachO (Mach 실행 가능/연결 형식)
- XBE (X-Box 실행 파일)
- FLT (플랫 형식)
- PEF (PowerPC 실행 파일 형식)
각 형식에 대해 헤더, 섹션, 심볼 테이블 등을 분석하고, x86, AMD64, PowerPC, Alpha, ARM, AVR 등의 아키텍처에 대한 코드 및 데이터 분석기를 제공합니다.
코드 및 데이터 분석기
HT Editor의 코드 및 데이터 분석기는 다음과 같은 고급 기능을 제공합니다:
- 분기 소스 및 목적지 재귀적 탐색
- 프로시저 엔트리 탐색 및 라벨 생성
- 교차 참조(XREF) 정보 생성
- ‘c’ 키를 눌러 미탐색 코드의 인터랙티브 분석
- ‘n’ 키를 눌러 라벨 생성/이름 변경/삭제
- ‘#’ 키를 눌러 주석 생성/편집
표현식 평가기
HT Editor는 블록 작업, 이동, 검색 및 평가 대화 상자에서 사용되는 강력한 표현식 평가기를 내장하고 있습니다. 이 평가기는 다음을 지원합니다:
- 표준 수학 연산자 (+ – / * % **)
- 논리 연산자 (! && || ^^)
- 관계 연산자 (== != =)
- 비트 연산자 (~ & | ^)
- 문자열 연산자 (.로 연결)
- 삼항 연산자 (a?b:c)
- 내장 함수 (round, sin, random, strcmp, strchr, sprintf 등)
- 특수 변수: _ (마지막 결과), first (첫 바이트 오프셋), last (마지막 바이트 오프셋)
블록 작업 (Blockop)
16진수 뷰어에서만 사용 가능한 블록 작업 기능은 바이너리 파일의 수정을 가능하게 합니다. 이 기능은 다음과 같이 작동합니다:
- START: 시작 오프셋 지정
- END: 종료 오프셋 지정
- MODE: 작업 모드 (1-바이트, 2-워드, 4-더블워드, 변수-문자열)
- EXPRESSION: 각 반복에서 평가할 표현식
- 특수 함수: readbyte(ofs), readstring(ofs, size), i (반복 카운트), o (현재 오프셋)
검색 기능
HT Editor는 F7 키를 통해 호출되는 고급 검색 기능을 제공하며, 다음과 같은 모드를 지원합니다:
- bin: ASCII/Hex – 정확한 문자열 또는 16진수 검색 (대소문자 구분 옵션)
- bin: eval str – 표현식을 한 번 평가한 후 결과 문자열 검색
- display: regex – 화면 표시에서의 정규식 검색 (예: PE/Image에서 ‘(add|sub).+?, [78]$’ 검색)
- expr nonzero – 표현식이 0이 아닌 경우 검색 중지 (예: entropy(readstring(o, 64)) > 82로 암호화/패킹된 데이터 탐지)
클립보드 및 히스토리
모든 열린 파일과 대화 상자는 공통 클립보드를 사용하며, 이진 데이터 복사/붙여넣기가 가능합니다. 단, null 문자는 공백으로 변환됩니다. 클립보드는 세션 간 저장되지 않지만, 수동으로 저장/로드하거나 전역 히스토리를 통해 재사용할 수 있습니다. 전역 히스토리는 구성 파일에 저장되어 프로그램 재시작 시 재사용 가능하며, 히스토리 팝업에서 DEL 키로 항목을 삭제할 수 있습니다.
명령줄 옵션
HT Editor는 다음 명령줄 옵션을 지원합니다:
- — : 추가 매개변수를 파일 이름으로 처리
- -v 또는 –version : 버전 및 저작권 정보 표시
- -h 또는 –help : 도움말 표시
- -t 또는 –text : 텍스트 편집기 모드로 파일 로드
- -b 또는 –bin : 16진수 편집기 모드로 파일 로드
- -a 또는 –auto : 파일 형식 자동 추측 시도
다운로드·설치 방법
HT Editor의 공식 홈페이지인 http://hte.sourceforge.net에서 다운로드 섹션을 통해 소스 코드를 받을 수 있습니다. 또한 공식 소스 저장소는 GitHub에서 관리되고 있습니다: https://github.com/sebastianbiallas/ht. Windows 사용자는 소스 코드를 다운로드한 후 C++ 컴파일러를 사용하여 빌드해야 하며, 공식 홈페이지의 문서를 참조하여 빌드 및 설치 절차를 따를 수 있습니다.
기본 사용법
HT Editor를 실행한 후 파일을 열면 다양한 뷰 모드 중에서 선택할 수 있습니다. Space 또는 F6 키를 눌러 텍스트, 16진수, 디스어셈블러 등 다양한 뷰 모드를 전환할 수 있습니다. 커서 키로 파일을 탐색하고, Page Up/Down으로 페이지를 이동할 수 있습니다. 분석 가능한 파일의 경우 ‘c’ 키를 눌러 코드 분석을 시작하고, ‘n’ 키로 라벨을 관리하며, ‘#’ 키로 주석을 편집할 수 있습니다. 검색은 F7 키로 시작하며, Shift-F7로 커서 위치부터 계속 검색할 수 있습니다.
지원 환경·시스템 요구사항
HT Editor는 GNU/Linux, FreeBSD 및 Win32 플랫폼을 지원합니다. Windows에서는 Win32 콘솔 애플리케이션으로 실행되며, ncurses 라이브러리에 의존합니다. 공식 문서에 따르면 Windows 98은 더 이상 지원되지 않으며, Windows XP 이상이 필요합니다 (Windows 2000은 테스트되지 않음).
최신 버전·업데이트
현재 버전은 2.1.0이며, 2015년 1월 11일에リリース되었습니다. 이 버전에서는 PE 재배치 처리 및 체크섬 계산 기능이 개선되었고, Atmel AVR 8-bit 마이크로컨트롤러용 디스어셈블러가 추가되었으며, 손상된 ELF 파일 관련 크래시가 수정되고 포함된 minilzo가 업데이트되었습니다. 이전 버전의 변경 사항은 공식 홈페이지의 ChangeLog 섹션에서 확인할 수 있습니다.
제한 사항·확인 사항
HT Editor의 일부 키 바인딩은 HT-posix에서는 정상적으로 작동하지 않을 수 있으며, 이 경우 Escape 키를 Control 키 대신 사용하는 것이 권장됩니다. 또한, 특정 파일 형식에 대한 분석기는 아직 완전히 구현되지 않았으며 (예: M$-OBJ, ARCH, LX 형식), 일부 고급 기능은 특정 아키텍처에만 제한적으로 제공될 수 있습니다.
시스템 요구사항
별도의 시스템 요구사항이 등록되지 않았습니다.


