리눅스2023. 7. 18. 11:13

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/582830

 

리눅스에서 "0F 00 FE ..." 이런 식의 16진수 문자열을 바이너리(binary) 파일로 만드는 방법이다. 바이너리 파일을 16진수 문자열로 출력해 주는 hexdump의 반대 방향 작업인 셈이다.

 

echo 명령의 -e 옵션을 이용해서 간단하게 작업할 수 있다. 16진수 문자열에 "\x"를 붙여주면 된다. 아래의 예시를 보자.

# 0x0F 0x00 0xFE 문자열을 바이너리 파일 test.bin으로 저장
echo -e "\x0F\x00\xFE" > test.bin

hexdump를 이용해서 내용을 확인할 수 있다.

# 내용 확인
hexdump -C test.bin
00000000 0f 00 fe 0a
00000004

위와 같이 했을 경우 test.bin의 내용을 보면 마지막에 0x0A가 붙어 있는 것을 볼 수 있는데, 줄바꿈(newline)이 자동으로 들어갔기 때문이다. -n 옵션을 이용하면 줄바꿈이 추가되지 않는다.

# -n 옵션으로 줄바꿈 문자(0x0A) 제외
echo -en "\x0F\x00\xFE" > test.bin

# 문자열 추가(append)
echo -en "\x1A\xFF" >> test.bin

# 내용 확인
hexdump -C test.bin
00000000 0f 00 fe 1a ff
00000005

 

 

728x90
Posted by 반달가면