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?
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:
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árioSINOPSE
strings [ - ] [ -a ] [ -o ] [ -t format ] [ -number ] [ -n number ] [--] [file ...]
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
O comando od pode fazer isso:
od -c *filename*
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 FILEou
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.