1

Как найти последовательность байтов (FEEDFEED00000002) в шестнадцатеричном коде и отобразить 1000 байтов после этой последовательности?

Это начало потерянного файла, который я ищу в разделе Linux. Эта команда выводит содержимое жесткого диска в шестнадцатеричном коде:

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

Мне нужно искать FEEDFEED00000002 в выводе.

1 ответ1

2

grep может искать двоичные шаблоны, это может быть более эффективным, чем проверка выходных данных hexdump, который будет примерно в 3 раза больше:

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

Даст вам смещения байтов; тогда вы можете извлечь 1к блоков с

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

Который создаст один файл на соответствующее смещение. Вы всегда можете запустить hexdump на них потом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .