Tools

[도구] HxD editor 사용방법(파일 복사 및 저장)

neck392 2024. 1. 25. 02:56

 010 editor는 사용자 친화적이며 Signature, Version, FileTime 등의 값들을 자동으로 찾아 사용자가 파일을 분석하기 쉽도록 직관적이게 화면에 나타내어 준다. 그러나 아직 전문적인 지식이 많이 부족한 상태에서 바로 이런 에디터를 쓰는 것은 배움에 있어서 좋지 않다고 판단하여 HEX editor를 사용하여 PNG 파일을 분석한다. 나중에 파일들의 구조에 대한 지식과 분석하는 방법에 관한 요령을 충분히 터득한 이후에 작업 시간을 단축시킨다는 목적으로 010 editor를 사용하는 것이 바람직하다.

 16진수는 8자리의 이진 데이터로 구성된다. 따라서 2진수 한 자리의 크기는 1bit이므로 16진수 값 한 개의 데이터 크기는 1 byte이다.(8bit = 1byte) , HxD editor에서 16진수 값의 자리 하나는 4bit의 크기를 가진다.


[기능]

HEX editor 실행시킨 후에 PNG 파일을 열고 "CTRL + F" 버튼을 입력하면

사진1(찾기)

'사진1'과 같은 찾기 창이 나오는데 텍스트 문자열과 16진수 값 등을 입력하고,

현재 위치 기준에서 검색 방향을 입력하면 해당하는 값의 데이터를 쉽게 찾을 수 있다.

여기서 텍스트 문자열은 16진수값을 텍스트로 변환한 프로그램 화면의 ‘Decoded text’ 값과 같다.

 

 

 텍스트 문자열의 검색 대상에 ‘PNG’를 입력해보면

사진2(PNG text)

'사진2'와 같이 ‘Decoded text’에서의 PNG 값을 찾아주고 이에 해당하는 16진수 값 또한 찾아준다.

검색 결과 값인 “50 4E 48”은 ASCII 값으로 PNG이다.

따라서 PNG 파일을 열었을 때 이 부분이 보이면 쉽게 PNG 파일 형식이라고 판단할 수 있다.

 

 

 

사진3(검색 대상 입력)

마찬가지로 이번에는 PNG 파일의

헤더 시그니처(Signature) 값인 “89 50 4E 47 0D 0A 1A 0A”를

위의 사진과같이 16진수 값으로 검색 해보면

 

 

사진4(검색 결과)

'사진4'와 같이 검색한 16진수 값과 해당하는 데이터를 Decoded text로 찾아준다.

 

 

여기서 “CTRL+E” 버튼을 통하여 블록 선택 창을 열 수 있는데

사진5(블록 검색)

'사진5'와 같이 나온다.

 

시작 오프셋(S)은 현재 검색한 데이터 값을 기준으로 그 데이터 값의 위치(높이)를 나타내며,

블록 선택 창은 그 값을 복사하여 시작 오프셋과 종료 오프셋을 입력하여 블록을 두 오프셋 사이의 데이터 블록을 찾는데 쓰인다.

 


 

[파일 복사]

PNG 파일의 헤더 시그니처의 Offset(높이)인 0을 복사하고

사진6(시그니처 값 찾기)

'사진6'과 같이 PNG 파일의 푸터 시그니처인 “49 45 4E 44 AE 42 60 82”를 “CTRL+F” 버튼의 찾기 창을 이용하여 찾는다.

 

 

사진7(오프셋 입력)

이후 다시 '사진7'과 같이 “CTRL+E” 버튼을 통해 블록 선택창을 열고 '시작 오프셋'에 처음 복사하였던 PNG 파일의 헤더 시그니처의 Offset(높이)인 0을 입력하고 “수락” 버튼을 누르면

 

 

사진8(블록 선택 결과)

'사진8'과 같이 시작 오프셋과 종료 오프셋 사이의 데이터들을 찾아준다.

 


 

[파일 생성]

사진9(파일 생성 아이콘)

'사진9'와 같이 빨간 네모 안에 있는 버튼을 클릭하여 새로운 파일을 만든 후

 

 

 “CTRL+V”를 눌러 복사한 데이터를 입력하고

사진10(파일 이름 입력)

“CTRL+S” 버튼을 눌러 파일 경로를 확인하고 저장한다.

 

 

사진11(바이너리 데이터 비교)

마지막으로 처음의 “ex.png” 파일과 복사한 “ex_copy.png” 파일을 명령어를 통하여 '사진11'과 같이 CMD창에서 바이너리 단위로 비교해보면 완전히 같다는 것을 알 수 있다.

 


 이런 과정을 활용하면 USB 드라이브에 포맷된 PNG(이미지) 파일 데이터 등을 복원 할 수도 있다. 포맷은 파일 시스템을 초기화하지만 실제 데이터를 삭제하지는 않는다. 파일은 여전히 드라이브에 남아 있을 수 있으며, HEX editor를 활용하여 복구할 수 있다. 그러나 데이터가 오랜 시간 동안 삭제되어 있거나 다른 데이터로 덮어 쓰인 경우에는 복구가 어려울 수 있다. 따라서 가능한 한 빨리 복구 작업을 수행하는 것이 좋다. 단, HEX editor로 디스크를 열기 위해서는 HEX editor를 관리자 권한으로 실행해야 한다.

[정리]

CTRL+F 찾기
CTRL+E 블록 선택
CTRL+G Offset(h) 이동

 

PNG 형식 시그니쳐(Signature)
Header signature(Hex) 89 50 4E 47 0D 0A 1A 0A
Footer signature(Hex) 49 45 4E 44 AE 42 60 82

 

'Tools' 카테고리의 다른 글

[도구] OllyDbg 단축키 정리  (0) 2024.05.21
[도구] 010 editor와 HxD(Hex) editor  (0) 2024.01.25
[도구] HxD editor 설치방법  (1) 2024.01.25