컴퓨터공부/Linux & Unix

vi에서 파일을 hex로 보기, hex editor

achivenKakao 2007. 5. 15. 18:23
이거 몰라서.. 한참 헤맸다...ㅡㅡ;

제  목 : hex editor 와 vi
작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
작성일 : 2006.2.17(금)

1. vi에서 hex 편집을

vi에서 hex editor 기능을 이용해서 바이너리 파일을 편집하는 방법이다.
ESC키를 누른 후(명령 모드로 전환)

:%!xxd

를 하면 hex editor 환경으로 전환되며, Hex 또는 AscII 편집을 모두 할 수 있다.
저장을 하기 위해서는 반드시 일반 편집 환경으로 전환한 후 해야 한다.

:%!xxd -r
:wq!



2. 그외

vi에서 편집 후 저장시 용량차이가 약간 생기는 경우도 있었으며, 이럴 경우에는
심플한 hex edtior인 heme ( http://heme.sourceforge.net/ )같은 것을 사용해서 편집한다.



16진수로 파일을 보기 위해서는 od 또는 hexdump 명령을 사용해라.

 
# od -t cx1 a.txt

0000000  \n   t   a   i   l       -   f       l   o   g   .   A   L   L
        0a 74 61 69 6c 20 2d 66 20 6c 6f 67 2e 41 4c 4c
0000020       |   e   g   r   e   p       -   v       '   (   s   y   n
        20 7c 65 67 72 65 70 20 2d 76 20 27 28 73 79 6e
 


-t x1  : 16진수 1자리 단위로 표시
-t x2  : 16진수 2자리 단위로 표시
-t cx1 : 16진수 1자리 + ASCII 문자 함께

 
# hexdump -x -c b.txt
0000000    2023    794d    5153    204c    6553    7672    7265    4920
0000000   #       M   y   S   Q   L       S   e   r   v   e   r       I
0000010    736e    6174    636e    2065    6f43    666e    6769    7275
0000010   n   s   t   a   n   c   e       C   o   n   f   i   g   u   r
 


-x : 16진수 2자리
-c : ASCII 문자

자세한 옵션은 맨페이지를...

* 참고 자료 :
  http://lists.freebsd.org/pipermail/freebsd-questions/2003-July/012019.html
  http://www.sourcepole.com/sources/reviews/hexeds.xml