Печать строки со смещением X в дампе памяти +/- 10 строк с каждой стороны

Печать строки со смещением X в дампе памяти +/- 10 строк с каждой стороны

У меня есть огромный образ памяти, который я исследую и в котором копаюсь (64 ГБ+). Слишком большой для загрузки в память/vim. Я запустил строки в файле памяти с включенными смещениями и сохранил его в файл, чтобы я мог искать индикаторы, которые меня интересуют. Пример вывода:

332327467 Washington1 
332327514 Redmond1 
332327536 Microsoft Corporation1

Как мне взять одно из этих смещений и распечатать эту конкретную область в памяти? В идеале +/- 10 строк от нее (если в памяти есть четные строки). Я ДУМАЮ, что видел, как dd или xxd это делают, но я не уверен.

Редактировать: В конечном итоге мой успешный рабочий процесс превратился в:

strings --radix=d mem.dump >> mem.asc
strings --radix=d -el mem.dump >> mem.uni
grep "blah" mem.asc *or* mem.uni
*grab offset from beginning of line*
dd if=mem.dump  bs=1 skip=*offset here* count=100 | xxd

При необходимости вычитаем из смещения небольшое значение, чтобы вернуться на несколько слов назад, и изменяем count=, чтобы перейти вперед, если необходимо.

решение1

Если вы хотите использовать dd, вы можете использовать skip=
bs— это сколько читать/писать за раз, offset= bs* skip. Count — это сколько раз читать/писать.
Пример:

$ dd if=input of=output bs=1 skip=332327467 count=128

Связанный контент