티스토리 뷰



자주 사용하지는 않지만 가끔 파일의 내용을 전용 뷰어나 에디터가 아닌 파일이 저장된 상태 그대로 확인하고 싶을 때가 있습니다. 특히 텍스트 파일이 아닌 바이너리 파일을 다루는 프로그램을 작성하는 경우 프로그래밍 과정에서 파일의 내용이 의도대로 작성되었는지 확인하는 것은 매우 중요합니다. 그렇지만 바이너리 파일의 경우 해당하는 전용 뷰어나 에디터로 내용 확인이 가능하기는 하지만 원천적인 정보를 볼 수 있는 것이 아니므로 저장된 형태 그대로 볼  수 있는 도구가 필요합니다. 이런 필요를 채워주는 것을 헥사(Hex) 뷰어 또는 헥사 에디터등으로 부르는데 이런 도구들은 파일의 내용을 16진수 형태로 덤프(Dump)해서 사람이 직접 확인할 수 있는 문자 코드에 제한 없이 내용을 확인할 수 있도록 해줍니다.


위의 그림은 한 DLL 파일을 열어본 예제로 파일 내용에 00과 같은 사람이 인식할 수 없는 코드를 포함해서 제한없이 파일 내용 그대로를 확인할 수 있습니다. 위의 예제는 특정 파일을 대상으로 하는 것이었지만 파일이 아니라 디스크 자체를 확인하고 수정하는데도 사용할 수 있습니다. 위의 예제에서 사용한 프로그램은 iBored 입니다.


iBored는 http://apps.tempel.org/iBored/에서 다운로드 받을 수 있습니다. 위의 그림과 같이 플랫폼에 관계없이 사용할 수 있는 도구입니다. 소스를 공개하고 있는지는 확인할 수 없었지만 무료임에는 틀림없습니다. 필자의 경우 우측의 윈도우용 다운로드 버튼을 클릭해서 다운로드 받았습니다.


다운로드 파일은 설치 파일이 아니라 단순 압축 파일이므로 위의 그림과 같이 특정한 폴더에 압축을 해제하고 iBored.exe를 실행시키면 되고 삭제는 폴더를 지우면 됩니다.

iBored.exe를 실행시키면 시스템의 디스크를 자동으로 인식해서 위의 그림과 같이 목록으로 표시해 줍니다. 위의 그림은 하드디스크(3개의 논리드리이브이지만 물리드라이브 1개로 표시함) 1개와 USB 메모리 1개를 인식한 화면으로 프로그램 실행 이후에 USB 메모리나 외장 하드를 붙였다면 하단의 [Refresh] 버튼을 통해서 목록을 갱신할 수 있습니다.

위의 첫 예제 그림처럼 특정한 파일의 내용을 보고 싶을 경우에는 해당 파일을 탐색기에서 끌어다가 위의 목록 화면에 놓기(Drag & Drop)하면 됩니다. 위의 목록 화면에서 물리 디스크를(Physical disk) 선택한 상태에서 [View] 버튼을 누르면 디스크 블럭 편집기로 iBored.exe를 사용하게 되는 것이고 특정 파일을 선택한 상태에서 [View] 버튼을 누르면 파일의 헥사 편집기로 iBored.exe를 사용하게 되는 것입니다.


특정한 파일을 목록창에 끌어다놓으면 위와 같은 화면을 통해서 블럭사이즈 선택하도록 안내하는데 512, 1K, 2K, 4K, 8K 바이트 단위로 블럭 크기를 지정해서 파일을 볼수 있습니다. 지정하지 않으면(ESC로 선택 화면을 취소하는 등의 경우) 기본 512 바이트를 블럭크기로 간주해서 처리합니다.


디스크나 파일을 [View]하면 맨위의 첫 예제 그림처럼 [Raw] 탭으로 파일의 내용을 단순한 16진수와 우측의 표시 가능한 문자로 표시하지만 디스크 형식이나 파일 형식이 알려진 형식이라면 [Template] 탭을 통해서 위의 그림과 같이 그 내용을 의미 있게 분석할 수 있습니다. iBored에서는 이런 형식을 템플릿으로 관리하고 사용자가 나름의 템플릿을 작성해서 사용할 수 있도록 기능을 제공하고 있습니다. 상단의 "Auto-Template"을 체크하면 인식가능한 형식의 경우 자동으로 선택해서 출력합니다. 우측 상단의 콤보 박스를 통해서 임의의 템플릿으로 파일을 해석해 볼 수 도 있습니다.


파일이나 디스크를 직접 수정하려면 대상 파일이나 디스크를 선택한 다음 Disk>Make Writable 메뉴Ctrl+Shift+M 단축키를 선택해서 대상 파일이나 디스크를 편집할 수 있는 상태로 전환한 다음 [View]로 전환해서 작업하면 됩니다. 편집 가능한 대상은 위의 그림처럼 우측에 "w"가 표시됩니다.


댓글
댓글쓰기 폼