Comando do Linux para encontrar seqüências de caracteres no arquivo binário ou não ascii


39

Existe algum comando linux para extrair todas as seqüências ascii de um arquivo executável ou outro arquivo binário? Suponho que poderia fazê-lo com um grep, mas lembro-me de ouvir em algum lugar que esse comando existia?

Respostas:


72

O comando que você está procurando é strings

Seu nome é bastante auto-explicativo, recupera qualquer sequência imprimível de um determinado arquivo.

man strings dá:

STRINGS (1)

NAME
strings - encontre as strings imprimíveis em um objeto ou outro arquivo binário

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


10

O comando strings é o caminho a seguir para esse tipo específico de problemas. Às vezes, você também precisa enviá-lo para grep .

Por exemplo:

strings somebinaryfile | grep textuwanttofind

4

O comando existe e é chamado .... strings!


3

O comando od pode fazer isso:

od -c *filename*

3
sim, isso extrai os caracteres ASCII, mas não são realmente as strings, por si só. Eu acho que 'strings' é mais útil para a maioria dos casos.
User5336 7/08/09

Ya, não sabia sobre esse comando, mas eu sei agora! Albert tenho o meu '+1' :-)
Kyle Brandt

2

Um problema com o uso de strings é que você não vê os imprimíveis ao redor e precisa ter cuidado com o comprimento mínimo das strings.

Um problema ao usar

od -c FILE
ou
hexdump -C FILE
é difícil encontrar uma sequência se quebra uma linha.

Algo de que gosto muito é o ZTreeWin em execução no WINE no Linux - você pode fazer muito com ele, mas a pesquisa em qualquer arquivo ou edição de binários pode ser particularmente útil.

O incrível pacote ytree está disponível para muitas variantes do Linux e Unix e possui uma boa exibição de despejo hexadecimal de qualquer arquivo, mas não possui a pesquisa que o ZTreeWin (e seu antecessor de 16 bits, XTree) possui.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.