Procura por uma substring em um fluxo de caracteres

1

Como faço para procurar por uma seqüência de bytes (FEEDFEED00000002) em código hexadecimal e exibir 1000 bytes após essa seqüência?

É o começo de um arquivo perdido que estou procurando em uma partição Linux. Este comando gera o conteúdo do disco rígido no código hexadecimal:

sudo cat /dev/sda1 | hexdump -v -e '"" 1/1 "%02X" ""'
# output is FF45D5003E... etc

Eu preciso procurar por FEEDFEED00000002 na saída.

    
por fhucho 17.08.2010 / 15:42

1 resposta

2

O grep pode procurar por padrões binários, pode ser mais eficiente do que examinar a saída do hexdump, que será aproximadamente 3 vezes maior:

grep -b 'echo -e "\xFE\xED\xFE\xED.."' /dev/sda1 | cut -d: -f1 >offsets

Irá dar-lhe as compensações de bytes; então você pode extrair 1k blocos com

for o in 'cat offsets'
do
    dd if=/dev/sda1 of=block.{$o} bs=1 count=1000 skip=$o
done

Que criará um arquivo por deslocamento correspondente. Você sempre pode executar hexdump depois disso.

    
por 17.08.2010 / 19:54

Tags