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?
39
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 existe e é chamado .... strings!
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
ou é 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.
fonte