xxd - 리눅스에서 바이너리 파일 내용을 16진수로 출력하기 리눅스

리눅스에서 바이너리 파일 내용을 16진수로 출력해야 할 경우 xxd라는 요긴한 도구가 있다. 아래의 예시를 보자.

# data.bin 파일 내용 출력
xxd data.bin
0000000: 1f8b 0800 ...
0000010: e103 6abb ...
...

위와 같이 입력하면 통상 많이 볼 수 있는 바이너리 파일 편집기와 유사한 형식으로 내용을 출력해 준다. 기본 출력은 2바이트씩 묶어서 공백으로 구분해서 보여주는데, 만약 각 바이트마다 공백으로 구분하려면 -g 옵션을 추가해 주자.

# data.bin 파일 내용 출력, 1바이트 단위로 구분
xxd -g 1 data.bin
0000000: 1f 8b 08 00 ...
0000010: e1 03 6a bb ...
...

위치 오프셋(offset)이나 ASCII 보기 등을 출력하지 않고 실제 파일의 내용만 16진수로 출력하고 싶을 경우에는 -p 옵션을 사용하면 되겠다.

# data.bin 파일 내용 출력, 연속된 16진수 형태
xxd -p data.bin
1f8b0800...

바이너리 파일에서 특정 16진수 패턴이 있는지 확인하고 싶을 때 grep 명령과 조합해서 편리하게 활용할 수 있다. 파일 크기가 크면 출력이 너무 길어질 수 있으므로 일치하는 부분만 출력하기 위해 grep에서 -o 옵션을 사용하는 것이 좋겠다.

# data.bin 파일 내용중에 0x0d 0x0a 존재 여부 확인
xxd -p data.bin | grep -o "0d0a"



핑백

  • 반달가면 : xxd - 리눅스에서 16진수를 바이너리 파일로 변환 2017-06-27 23:16:52 #

    ... 로 출력해 주는 도구인 xxd를 이용해서 반대로 16진수를 바이너리 파일로 만들 수도 있구나. 바이너리 파일 내용을 16진수로 출력하는 방법은 이전 게시물을 참고하자. 여기로 16진수에서 바이너리 파일로의 변환은 xxd에서 -r 옵션을 이용하면 된다. 예를 들어 문자열 "abc"에 해당되는 16진수 "0x61 0x62 0x63"을 바 ... more

덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.

Google Analytics


B-Side


adsense(w160_h600)2

통계 위젯 (화이트)

1291243
7126
1342461

ad_widget_2