바이너리 파일을 16진수로 출력해 주는 도구인 xxd를 이용해서 반대로 16진수를 바이너리 파일로 만들 수도 있구나. 바이너리 파일 내용을 16진수로 출력하는 방법은 이전 게시물을 참고하자. 여기로
16진수에서 바이너리 파일로의 변환은 xxd에서 -r 옵션을 이용하면 된다. 예를 들어 문자열 "abc"에 해당되는 16진수 "0x61 0x62 0x63"을 바이너리 파일로 만들고 싶다면 아래와 같이 할 수 있을 것이다.
# 16진수 파일 data.hex 만들기
echo "616263" > data.hex
# data.hex 파일을 바이너리 데이터로 변환한 출력을 data.bin으로 저장
xxd -r -p data.hex > data.bin
# data.bin 내용 확인
xxd data.bin
0000000: 6162 63 abc
변환할 때 파일의 내용만 출력하기 위한 -p(plain hexdump) 옵션을 같이 사용한다는 점에 유의. -r 옵션을 사용할 때 -p 옵션을 같이 붙이지 않으면 제대로 동작하지 않는다.
16진수에서 바이너리 파일로의 변환은 xxd에서 -r 옵션을 이용하면 된다. 예를 들어 문자열 "abc"에 해당되는 16진수 "0x61 0x62 0x63"을 바이너리 파일로 만들고 싶다면 아래와 같이 할 수 있을 것이다.
# 16진수 파일 data.hex 만들기
echo "616263" > data.hex
# data.hex 파일을 바이너리 데이터로 변환한 출력을 data.bin으로 저장
xxd -r -p data.hex > data.bin
# data.bin 내용 확인
xxd data.bin
0000000: 6162 63 abc
변환할 때 파일의 내용만 출력하기 위한 -p(plain hexdump) 옵션을 같이 사용한다는 점에 유의. -r 옵션을 사용할 때 -p 옵션을 같이 붙이지 않으면 제대로 동작하지 않는다.
덧글