이진 또는 비 ASCII 파일에서 문자열을 찾기위한 Linux 명령


38

실행 파일이나 다른 이진 파일에서 모든 ASCII 문자열을 추출하는 Linux 명령이 있습니까? 나는 grep으로 그것을 할 수 있다고 생각하지만, 그러한 명령이 존재하는 곳을 듣는 것을 기억합니까?

답변:


71

당신이 찾고있는 명령은 strings

이름은 설명이 필요 없으며 주어진 파일에서 인쇄 가능한 문자열을 검색합니다.

man strings 제공합니다 :

STRINGS (1)

NAME
문자열 -객체 또는 다른 이진 파일에서 인쇄 가능한 문자열을 찾습니다.

개요
strings [ - ] [ -a ] [ -o ] [ -t format ] [ -number ] [ -n number ] [--] [file ...]


9

문자열 명령은 문제의 특정 유형에 갈 수있는 방법입니다. 때때로 당신은 또한 grep에 그것을 파이프해야합니다 .

예를 들면 다음과 같습니다.

strings somebinaryfile | grep textuwanttofind

4

명령이 존재하며 .... 문자열이라고합니다!


3

od 명령은 다음을 수행 할 수 있습니다.

od -c *filename*

3
예, ASCII 문자를 추출하지만 실제로 문자열은 아닙니다. 나는 '문자열'이 대부분의 경우에 더 유용하다고 생각합니다.
user5336

나중에 그 명령에 대해 몰랐지만 지금은 알고 있습니다! AlberT는 내 '+1'을 받았습니다 :-)
Kyle Brandt

2

문자열을 사용할 때의 문제점은 인쇄 할 수없는 주변 장치가 보이지 않으며 최소 문자열 길이에주의해야한다는 것입니다.

사용하는 문제

od -c 파일
또는
hexdump -C 파일
시퀀스를 줄 바꿈하면 찾기가 어려울 수 있습니다.

내가 이것을 좋아하는 것은 Linux의 WINE에서 실행되는 ZTreeWin 입니다.이를 사용하면 많은 것을 할 수 있지만 모든 파일을 검색하거나 바이너리를 편집하는 것이 특히 유용 할 수 있습니다.

굉장한 ytree 패키지는 많은 Linux 및 Unix 변형에 사용할 수 있으며 모든 파일에 대한 양호한 Hex 덤프보기가 있지만 ZTreeWin (및 16 비트 이전 버전 인 XTree)에 대한 검색은 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.