Я пробовал весь день, чтобы заставить это работать. Кто-нибудь знает, как получить grep или что-то подобное, чтобы получить смещения шестнадцатеричных строк в файле?
У меня есть куча hexdumps, которые мне нужно проверить на строки, а затем снова запустить и проверить, изменилось ли значение.
Я пробовал hexdump и dd, но проблема в том, что это поток, я теряю смещение для файлов.
У кого-то должна быть эта проблема и обходной путь. Что я могу сделать?
Чтобы уточнить, у меня есть серия областей сбрасываемой памяти из GDB.
Я пытаюсь сузить число, просматривая все места, где хранится номер, затем повторю это и проверяя, сохранено ли новое значение в той же ячейке памяти.
Я не могу заставить grep ничего делать, потому что я ищу шестнадцатеричные значения, поэтому все время, которое я пробовал (например, bazillion, примерно), он не даст мне правильный результат.
Шестнадцатеричные дампы - это просто полные двоичные файлы, paterns находятся в значениях float при больших значениях 8? байтов?
Паттерны не обертывают строки, о которых я знаю. Я знаю, что он изменил, и я могу сделать тот же процесс и сравнить списки, чтобы увидеть, в каком совпадении. Гнездовые свалки обычно заканчиваются (всего) 100 megs- ish.
Perl МОЖЕТ быть вариантом, но на данный момент я предполагаю, что я не знаю знаний с bash, и его инструменты являются основным виновником.
Немного трудно объяснить вывод, который я получаю с тех пор, как я действительно не получаю никакого выхода.
Я ожидаю (и ожидаю) чего-то вроде:
<offset>:<searched value>
Какой нормальный стандартный вывод я обычно получаю с grep -URbFo <searchterm> . > <output>
Проблема в том, что когда я пытаюсь выполнить поиск шестнадцатеричных значений, возникает проблема, если вы не ищете шестнадцатеричные значения, поэтому, если я ищу 00, я должен получить миллион ударов, потому что это всегда пустое пространство, но вместо этого он ищет 00 как текст, поэтому в шестнадцатеричном формате 3030. Любая идея?
Я МОГУ ПОМОЧЬ через hexdump или что-то вроде ссылки, но поскольку его поток не даст мне смещения и имя файла, в котором он нашел совпадение.
Использование опции grep -b
тоже не работает, я попытался использовать все флаги, которые мне показались полезными, и ничего не получилось.
Используя xxd -u /usr/bin/xxd
в качестве примера, я получаю вывод, который будет полезен, но я не могу использовать его для поиска.
0004760: 73CC 6446 161E 266A 3140 5E79 4D37 FDC6 s.dF..&[email protected]^yM7..
0004770: BF04 0E34 A44E 5BE7 229F 9EEF 5F4F DFFA ...4.N[."..._O..
0004780: FADE 0C01 0000 000C 0000 0000 0000 0000 ................
Хороший результат, просто то, что я вижу wana, но это просто не работает для меня в этой ситуации.
Вот некоторые из вещей, которые я пробовал с момента публикации:
xxd -u /usr/bin/xxd | grep 'DF'
00017b0: 4010 8D05 0DFF FF0A 0300 53E3 0610 A003 @.........S.....
root# grep -ibH "df" /usr/bin/xxd
Binary file /usr/bin/xxd matches
xxd -u /usr/bin/xxd | grep -H 'DF'
(standard input):00017b0: 4010 8D05 0DFF FF0A 0300 53E3 0610 A003 @.........S.....