컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Wednesday, August 29, 2007

Vim Vi 헥사 뷰어, 헥사 에디터 모드 명령어; Hex Viewer Hex Editor, xxd


Vim / Vi 에디터에서 현재 편집 중인 파일을 헥사 모드로 즉 16진 모드로 볼 수 있는 명령어가 있습니다. xxd 라는 명령입니다. 이것으로 텍스트파일은 물론이고, "이진파일" 즉 "바이너리" 파일도 헥사 모드로 볼 수 있습니다. 편집도 어느 정도 가능하긴 하지만 불완전합니다.

(1) 현재 파일을 헥사 모드로 전환 명령:
:%!xxd


(2) 헥사 모드를 원래의 모드로 되돌리기 명령:
:%!xxd -r


* 파일을 불러온 후 (1)번 명령을 실행하여 헥사 모드로 전환한 후, 헥사뷰어로서 보거나 또는 헥사에디터로서 편집하고

* (2)번 명령으로 원래대로 돌린 후, 수정 사항이 있을 경우 :w 명령으로 파일을 하드에 저장하면 됩니다.


아래 화면은 텍스트 파일을 Vim에디터에서 xxd 명령으로 본 것입니다. 이진파일도 마찬가지입니다.

Vim에디터에서 파일을 헥사 모드로 변환하여 본 장면
(아래 화면 클릭 후, 우측 화살표 키로, 옆으로 스크롤 가능)
0000000: 5573 696e 6720 4865 6c70 0d0a 5468 6573  Using Help..Thes
0000010: 6520 4865 6c70 2066 696c 6573 2061 7265  e Help files are
0000020: 206f 7267 616e 697a 6564 2070 7269 6d61   organized prima
0000030: 7269 6c79 2062 6173 6564 206f 6e20 7468  rily based on th
0000040: 6520 6d65 6e75 2073 7472 7563 7475 7265  e menu structure
0000050: 2069 6e20 556c 7472 6145 6469 7420 2f20   in UltraEdit /
0000060: 5545 5374 7564 696f 2e20 2054 6f20 7468  UEStudio.  To th
0000070: 6520 6c65 6674 2079 6f75 2073 686f 756c  e left you shoul
0000080: 6420 7365 6520 7468 6520 666f 6c6c 6f77  d see the follow
0000090: 696e 6720 6d61 6a6f 7220 6865 6164 696e  ing major headin
00000a0: 6773 3a0d 0a0d 0a0d 0a0d 0a47 6574 7469  gs:........Getti
00000b0: 6e67 2053 7461 7274 6564 0d0a 0d0a 4d65  ng Started....Me
00000c0: 6e75 732f 546f 6f6c 6261 7273 0d0a 0d0a  nus/Toolbars....
00000d0: 4d65 6e75 2053 756d 6d61 7279 0d0a 0d0a  Menu Summary....
00000e0: 2a20 436f 6d70 696c 6572 2043 6f6e 6669  * Compiler Confi
00000f0: 6775 7261 7469 6f6e 0d0a 0d0a 2a20 4356  guration....* CV
0000100: 5320 5375 7070 6f72 740d 0a0d 0a46 4151  S Support....FAQ
0000110: 0d0a 0d0a 4c69 6365 6e73 6520 4167 7265  ....License Agre
0000120: 656d 656e 740d 0a0d 0a53 616c 6573 2061  ement....Sales a
0000130: 6e64 2053 7570 706f 7274 0d0a 0d0a 0d0a  nd Support......
0000140: 0d0a 5468 6520 4765 7474 696e 6720 5374  ..The Getting St
0000150: 6172 7465 6420 7365 6374 696f 6e20 286f  arted section (o
0000160: 6620 7768 6963 6820 7468 6973 2069 7320  f which this is
0000170: 7468 6520 6669 7273 7420 646f 6375 6d65  the first docume
0000180: 6e74 2920 636f 6e74 6169 6e73 2075 7365  nt) contains use
0000190: 6675 6c20 696e 666f 726d 6174 696f 6e20  ful information
00001a0: 746f 2067 6574 2079 6f75 2075 7020 616e  to get you up an
00001b0: 6420 7275 6e6e 696e 6720 7175 6963 6b6c  d running quickl
00001c0: 7920 616e 6420 6564 6974 696e 6720 7465  y and editing te
00001d0: 7874 2069 6e20 556c 7472 6145 6469 742e  xt in UltraEdit.
00001e0: 0d0a 0d0a 0d0a 0d0a 5468 6520 4d65 6e75  ........The Menu
00001f0: 2053 756d 6d61 7279 2073 6563 7469 6f6e   Summary section
0000200: 206d 6179 2062 6520 6578 7061 6e64 6564   may be expanded
0000210: 2062 7920 646f 7562 6c65 2d63 6c69 636b   by double-click
0000220: 696e 6720 616e 6420 636f 6e73 6973 7473  ing and consists
0000230: 206f 6620 696e 666f 726d 6174 696f 6e20   of information
0000240: 7265 6761 7264 696e 6720 7468 6520 636f  regarding the co
0000250: 6d6d 616e 6473 2070 7265 7365 6e74 6564  mmands presented
0000260: 2069 6e20 7468 6520 6d65 6e75 7320 696e   in the menus in
0000270: 2055 6c74 7261 4564 6974 2e20 2045 6163   UltraEdit.  Eac
0000280: 6820 6d65 6e75 2068 6561 6469 6e67 2028  h menu heading (
0000290: 4669 6c65 204d 656e 752c 2045 6469 7420  File Menu, Edit
00002a0: 4d65 6e75 2c20 6574 632e 2920 6d61 7920  Menu, etc.) may
00002b0: 6265 2065 7870 616e 6465 6420 6279 2064  be expanded by d
00002c0: 6f75 626c 652d 636c 6963 6b69 6e67 2061  ouble-clicking a
44 lines filtered                                             1,1           Top


편집할 때에는 중앙의 "5573 696e 6720 4865" 이런 16진수 숫자들을 편집해야 합니다. 맨 우측의 문자 구역을 편집하면 안됩니다.

주의! 헥사 모드 상태로 파일을 저장하면 위의 화면처럼 헥사 모드 그대로 저장되어 버립니다. 즉 이진파일이 텍스트 파일이 되어 버립니다. 이때는 ":%!xxd -r" (따옴표 제외) 명령으로 원래의 이진파일로 돌릴 수 있습니다.

Vim이나 Vi 버전에 따라 헥사 편집이 잘 안되고 파일이 깨지는 경우가 있습니다. 중요한 파일을 헥사 편집할 때에는 원본이 아닌 복사본으로 편집해야만 합니다.


헥사 뷰어는 Perl로 간단히 만들어 쓸 수도 있습니다: ▶▶ Perl 펄] 헥사 뷰어, 헥사 덤프 만들기 소스 코드; Hex Viewer, File Dump

▶▶ 리눅스] Hex Editor (헥사 에디터) / 이진 파일 편집기 - Binary Editor




tag: linux
리눅스 Linux | 유닉스 Unix | 시그윈 Cygwin

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top