HexWorkshop

Digital Forensic Wikipedia
둘러보기로 가기 검색하러 가기

HexWorkshop은 BreakPoint Software에서 개발한 헥스 편집기이며, 상용 소프트웨어이다. 최신 업데이트는 2014년 9월 1일이며, 최신 업데이트 버전은 V6.8.0이다. 본 항에서는 V6.8.0버전을 사용하였다.

소개

HexWorkshop은 BreakPoint Software에서 개발한 헥스 편집기이며, 모든 Windows 운영체제 환경에서 사용 가능하다. HexWorkshop은 홈페이지 (http://www.hexworkshop.com/)에서 다운받아서 30일 동안 무료 사용이 가능하다. 복사, 붙여넣기 등 기본적인 편집과 16진수나 10진수로 오프셋 위치와 길이를 확인하는 기능이 있다. 섹터 편집 기능으로 물리적인 디스크나 파티션을 섹터 단위로 편집/복사 가능하며, 섹터 범위만으로 저장이 가능하다. 데이터 구조 편집 및 뷰어기능과 if나 switch를 이용한 조건부로 구조 확인 가능하며, 통합기능으로 인해 데이터 조작과 파일 포맷 파싱이 자동적으로 가능하다. 비교 기능으로 다른 도구와 비슷하게 바이너리 수준의 바이트 단위 비교와 다른 부분을 색으로 강조하는 기능이 있다. 플러그인 API로 열려있는 문서의 데이터 조작 허용하거나 새 문서를 생성 할 수 있다. HexWorkshop의 실행 화면은 [그림 1]과 같다.

[그림 1] HexWorkshop 실행화면






사용법

파일열기 및 생성

HexWorkshop을 실행하고 메뉴에서 File – Open File을 선택하여 파일을 열거나 드래그 & 드롭으로 파일을 열 수 있다. 파일뿐만 아니라 드라이브도 Disk메뉴 - Open Drive를 클릭하면 볼 수 있다. 파일 생성은 File – New를 클릭하여 생성하거나 혹은 Ctrl+N을 눌러 파일을 생성 할 수 있다.

저장

새로 생성한 파일이나 수정한 파일을 저장할 때에는 File탭의 Save를 이용하거나 단축키인 Ctrl+S를 이용하여 저장할 수 있다. 다른 이름으로 파일을 저장하려면 File – Save As를 눌러서 저장한다.

Find 및 Replace

Edit탭의 Find를 클릭하면 [그림 2]과 같이 Find창이 나타난다. 검색하고자하는 문자열 종류를 Type에서 선택하고 Value에 검색어를 입력하면 동시에 Hex 값이 표시됩니다. Options에서 검색할 문자 집합을 선택하고 확인을 클릭하면 [그림 3]의 Results 창의 Find탭에 검색된 문자 주소 값과 함께 결과가 출력된다. Direction은 위로 탐색할지 아래로 탐색할지 선택하는 것이다.

[그림 2] Find 창
[그림 3] Find 결과

Edit메뉴의 Replace를 클릭하면 [그림 4]처럼 Replace창이 나타난다. 문자열 Type을 선택하고 바꾸고자하는 값을 Find, Replace에 각각 값을 넣는다. Options에서 검색할 문자 집합을 선택하고 Direction에서 어느 방향으로 바꿀 것인지 선택한 뒤 확인 버튼을 누른다. 그러면 [그림 5] 창이 뜨는데 첫 번째 Find Next는 다음 검색어를 찾는 버튼이고 Find Previous는 이전 검색어를 찾는 버튼, Replace는 바꾸고자 하는 값으로 바뀌고 Replace All은 한 번에 바꾸고자하는 값이 모두 바뀐다.

[그림 4] Replace 창
[그림 5] 찾기 또는 바꾸기 창

Bookmark

Bookmark하고자하는 영역을 선택한 뒤, Tools메뉴의 Bookmarks – Add Bookmark를 클릭하거나 Ctrl+B를 눌러서 북마크를 추가한다. 북마크를 추가하면 [그림 6]과 같이 Results창의 Bookmarks탭에 추가된 북마크에 대한 정보(주소, 길이, 값, 설명)가 나타난다.

[그림 6] 추가한 북마크

추가된 북마크 간에 F7(다음 북마크)과 Shift+F7(이전 북마크)을 이용하여 북마크를 탐색할 수 있다.





도구 기능

기본적인 편집

[그림 7]은 파일을 생성하거나 열고 닫을 수 있고 프린트 할 수 있는 기능이 있는 File 메뉴이다. 각 메뉴에 대한 설명은 다음 [표 1]와 같다.

[그림 7] File 메뉴
[표 1] File 메뉴 기능 설명
기능 설명
New 새로운 파일 생성
Open 파일 열기
Close 파일 닫기
Save 저장하기
Save As 다른 이름으로 저장하기
Insert File 파일 추가하기
Save Selection 선택한 부분 파일로 저장하기
Import 8, 16, 32 bit Intel Hex Code, Motorola S19, S28 또는 S37 레코드 형식을 임포트 기능
Export 8, 16, 32 bit Intel Hex Code, Motorola S19, S28 또는 S37 레코드, HTML, RTF, C source, Java source, Text(ANSI, UTF-8, Unicode), Hex string, Base64 형식으로 출력하는 기능
Page Setup 프린트 출력 시, 출력화면 설정 맨 위부분과 아래 부분의 출력 값에 대한 설정인 파일이름, 파일경로, 현재 페이지, 총 페이지, 시간(24h, AM/PM, Local), Short Date, Long Date, 왼쪽정렬, 중앙 정령, 오른쪽으로 정렬이 있고 폰트나 여백에 대한 설정 기능
Print Preview 프린트 미리보기
Print 프린트 출력
Paths 최근 연 파일의 경로
Exit 종료하기

[그림 8]은 수정 시 되돌리기, 자르기, 복사하기, 붙여넣기, 찾기, 바꾸기, 바로가기 기능이 있는 Edit 메뉴이다. 각 메뉴에 대한 설명은 다음 [표 2]과 같다.

[그림 8] Edit 메뉴
[표 2] Edit 메뉴 기능 설명
기능 설명
Undo 이전 상태로 되돌리기 기능
Redo 수정하기 전 상태로 되돌리기
Cut 자르기
Copy 붙여넣기
Copy Address 커서 위치의 주소 값 복사하기
Copy As C source, Java source, Hex string, HTML, RTF, Text, Base 64, UUEncoding형태로 복사하기
Paste 붙여넣기
Paste Special 파일에서 현재 사용 할 수 있는 표준 Windows 클립보드 형식 중 하나를 붙여 넣기
Select All 전체 선택하기
Select Block 블럭 선택하기
Insert 현재 위치에서 값을 넣는 기능
Delete 선택한 영역 삭제하기
Find 찾기
Find Next 아래방향으로 찾기
Find Previous 위 방향으로 찾기
Find Selection 선택한 영역 찾기
Replace 바꾸기
Goto 지정한 위치로 바로가기
Goto Forwards 다음 위치로 이동
Goto Backwards 이전 위치로 이동
Goto Selected Address 선택한 주소로 이동
Properties 파일의 상세정보 (파일 이름, 생성 날짜, 마지막 수정 날짜, 상태, 크기)
[그림 9] Insert Bytes

Insert Bytes는 Dec 또는 Hex값을 이용하여 Number of bytes에 몇 바이트를 추가할지 적고 Fill with the following hex byte에 초기 헥스 값을 지정한 다음, OK버튼을 누르면 커서의 위치부터 값이 추가된다.


[그림 10] Goto

Goto기능은 Offset위치에 From Where를 기준으로 파일의 시작부터, 현재 위치부터, 파일의 끝에서부터 얼마만큼 이동할지 값(Dec 혹은 Hex 값으로)을 적는다. OK버튼을 누르면 해당 위치로 이동한다. F5를 누르거나 Shift+F5를 누르면 다음 위치나 이전 위치로 이동한다.

디스크 드라이브

[그림 11] Disk 메뉴

[그림 11]는 디스크를 열거나 섹터 단위로 탐색하거나 이동하는 기능이 있는 Disk 메뉴이다. 각 메뉴에 대한 설명은 다음 [표 3]와 같다.


[표 3] Disk 메뉴 기능 설명
기능 설명
Open Drive 디스크 열기
Previous Sector 이전 섹터로 이동
Next Sector 다음 섹터로 이동
First Sector 첫 번째 섹터로 이동
Last Sector 마지막 섹터로 이동
Goto Sector 지정한 섹터로 이동
Goto Sector Again 이전 섹터로 이동한 만큼 다시 이동
Save Sectors 선택한 영역만큼 섹터 저장
Restore Sectors 이전에 저장한 섹터를 다시 저장
Copy Sectors 선택한 영역을 다른 디스크에 복사
[그림 12] Save Sector Range

[그림 12]는 Sector Range에서 저장할 섹터 영역을 적고 Target File에 저장할 위치와 파일명을 적은 뒤 OK버튼을 눌러 섹터를 저장한다. Results는 선택한 영역의 섹터 수와 크기가 나타난다.

[그림 13] Restore Sector Range

[그림 13]은 Save Sector에서 저장한 섹터를 다시 저장하는 기능이다.

[그림 14] Copy Sectors

[그림 14]은 Copy From에서 복사할 디스크와 섹터 범위를 선택하고 해당 섹터를 Copy To에서 지정한 디스크에 붙여 넣는다.

Options

[그림 15] Options 메뉴

[그림 15]은 화면이나 환경설정이 있는 Options 메뉴이다. 각 메뉴에 대한 설명은 다음 [표 4]과 같다.

[표 4] Options 메뉴 기능 설명
기능 설명
Byte Order 바이트 순서 설정 (Little Endian e.g. Intel, Big Endian e.g. Motorola)
File Offset 오프셋 값 설정(Hex 또는 Decimal)
Toolbars 툴바 설정
Show Data Inspector Window 창을 보일지 안보일지 선택하는 메뉴
Show Expression Calc Window
Show Data Visualizer Window
Show Structure Viewer Window
Show Results Window
Show Status Bar
Display Editor Tooltips 에디터의 툴팁을 보여주는 기능
Preferences 환경 설정
Define Keycuts 단축키 설정


[그림 16] Layout

HexWorkshop은 8개(Tool Bar, Data Visualizer, Editor Window, Data Inspector, Expression Calc, Structure View, Results Window, Status Bar)의 요소와 창으로 구성되어 있다. [그림 16]는 HexWorkshop의 Layout을 나타낸 것이다.

[그림 17] Shortcut Keys

[그림 17]은 단축키를 설정하는 창이다. 단축키를 지정할 메크로를 지정하고 Create Shortcut버튼을 누른 후 카를 지정한다. Description은 해당 매크로에 대한 설명이다. Assigned shortcuts은 이미 지정된 단축키를 보여준다.

Tools

[그림 18] Tools 메뉴

[그림 18]은 북마크, 계산기, 파일 비교 기능 등이 있는 Tools 메뉴이다. 각 메뉴에 대한 설명은 다음 [표 5]과 같다.

[표 5] Tools 메뉴 기능 설명
기능 설명
Base Converter hex, decimal, binary 중 8 bit, 16 bit, 32 bit로 변환하는 기능
Hex Calculator , &, ^, <<, >>, ~ 연산 기능 지원
Operations Byte Flip, Invers Bits, Shift Left, Shift Right, Rotate Left, Rotate Right, Block Shift Left, Block Shift Right, Set Ceiling Value, Set Floor Value, AND, OR, XOR, Change Sign, Add, Subtract, Multiply, Divide, Mod, Upper Case, Lower Case, Inverse Case를 지원
Bookmarks 북마크 기능
Character Distribution 문자열 분포도를 보여주는 기능
Color Mapping 매핑되는 영역을 색으로 표시하는 기능
Compare 파일 비교 기능
Generate Checksum 체크썸 기능
Find Strings 문자열 검색 기능
Structure Viewer 파일에 구조를 보여주는 기능
Customize 사용자가 도구를 직접 추가하는 기능
Notepad 윈도우즈의 메모장을 켜는 기능

그 외 기능

[그림 19] Window 메뉴

그 외의 기능으로는 Plug-Ins메뉴와 Window 창 설정에 관한 메뉴 그리고 Help메뉴가 있다. Plug-Ins메뉴는 C/C++ API를 추가할 수 있고, 로깅을 위해 출력 창으로 통합할 수 있으며 스마트 북마크를 만들거나 조작할 수 있다. [그림 19]은 HexWorkshop의 창을 설정하는 Window 메뉴이다. 각 메뉴에 대한 설명은 다음 [표 6]와 같다.

[표 6] Window 메뉴 기능 설명
기능 설명
New Window 현재 화면에 있는 내용을 복사하여 새 창을 만드는 기능
Cascade 현재 열린 창들을 연속적인 창으로 보이게 하는 기능
Tile Horizontally 현재 열린 창들을 수평으로 나열하는 기능
Tile Vertically 현재 열린 창들을 수직으로 나열하는 기능
Arrange Icons 아이콘 정렬 기능
Lists 현재 열린 창의 목록


[그림 20] Help 메뉴

[그림 20]는 HexWorkshop의 도움말, 단축키, 웹사이트를 방문할 수 있는 Help 메뉴이다. 각 메뉴에 대한 설명은 다음 [표 7]과 같다.

[표 7] Help 메뉴 기능 설명
기능 설명
Contents 설명 기능
Keycuts 단축키 보기 기능
Reference Material Data Types에 대한 설명
How to Order 이 도구를 구매하기 위한 방법
BreakPoint Software Web Site 웹 사이트 방문
Report Bugs 버그 리포트 기능
Product Suggestions 제품에 대한 피드백을 주는 기능
Check for New Version 새로운 버전을 체크하는 기능
About Hex Workshop Hex Workshop에 대한 설명


제한사항

디스크를 볼 때 전체를 볼 수 없고, 섹터단위로 출력되어 디스크 전체 분석 시 수사에 불편하다.





수사 활용 방안

다른 헥스 편집기에 비해 사용하기 편리하여 수사 시 유용하다.