bash script2023. 8. 1. 12:04

 

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

strings는 바이너리 파일에 포함되어 있는 문자열만 골라 화면에 출력해 주는 기능을 제공한다. 별도의 옵션을 지정하지 않을 경우 4바이트 이상의 문자열이 존재할 경우 화면에 출력해 준다. 아래의 예시를 보자.

# my_data.bin 파일에 포함된 문자열 출력
strings my_data.bin

화면에 출력할 문자열의 최소 길이는 기본값이 4이나, -n 옵션을 이용해서 사용자가 직접 지정해 줄 수도 있다.

# my_data.bin 파일에 포함된 길이 8바이트 이상의 문자열 출력
strings -n 8 my_data.bin

만약 출력 결과에 파일명을 같이 표시해 주고 싶다면 -f 옵션을 이용한다.

# 파일명을 함께 출력(-f)
strings -f my_data.bin
my_data.bin:...
my_data.bin:...
...

strings에서 문자열로 간주하는 범위는 기본적으로 영문에 국한되어 있다고 보면 된다(man 페이지에 보면 기본설정이 single-7-bit-byte character라고 표현되어 있다. ASCII, ISO 8859 등이 여기에 해당된다고 한다).

한글 리눅스에서 통상 많이 사용하게 되는 UTF-8 인코딩된 한글은 포함되지 않는다. 인코딩을 지정하는 -e 옵션에서 single-8bit-byte character에 대응하는 S 값을 주면 출력은 되는데, 다른 바이너리 데이터들도 이상하게 깨진 형태로 출력될 수 있다는 점에 유의.

# 인코딩 변경(-e): single-8bit-byte character
strings -e S my_data.bin

728x90
Posted by 반달가면