LINUX.ORG.RU

Как грепнуть бинарный файл по последовательности значений байтов?

 


0

1

Хочу найти байты 0x00, 0x01, 0x05 например. Городить сотни нефти скриптов из перлов и парсингом выхлопов xxd - не вариант.

★☆

Последнее исправление: cetjs2 (всего исправлений: 1)

Если файл один, то hexedit

Jetty ★★★★★
()

Так можно быстро проверить, что последовательности нет (если вывод грепа - 0)

xxd -ps $BINFILE  | tr -d '\n' | grep -c '000105'

Если найдет, то надо проверить что нашло без смещения символов.

sdio ★★★★★
()
Последнее исправление: sdio (всего исправлений: 1)
Ответ на: комментарий от sdio

Update: вот решение из подручный материалов

xxd -ps $BINFILE | sed 's/\(..\)/\1 /g' | tr -d '\n' | grep -c '00 01 05'

sdio ★★★★★
()

перлов

На питоне вполне читаемо бы вышло. Если размер позволяет, то:

data=$(printf "abc \x00\x01\x05")
prefix=${data%%$(printf "\x00\x01\x05"*)
echo ${#prefix}
anonymous
()
#!/bin/bash

echo -n "20 00 01 05 09" | xxd -r -p >test.target

cat >magic.binwalk <<EOF
0   string   \x00\x01\x05   00 01 05
EOF

binwalk -m magic.binwalk test.target
anonymous
()
Ответ на: комментарий от anonymous

или проще:

binwalk -R '\x00\x01\x05' test.target

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.