在記憶體轉儲中以偏移 X 處列印行,每側 +/- 10 行

在記憶體轉儲中以偏移 X 處列印行,每側 +/- 10 行

我有一個巨大的內存圖像正在調查和挖掘(64GB+)。太大,無法載入到記憶體/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=
bsis 一次讀/寫的數量,offset= bs* skip。計數是讀/寫的次數。
例子:

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

相關內容