我有一个巨大的内存图像正在调查和挖掘(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=
bs
一次读取/写入的数量,offset= bs
* skip
。Count 是读取/写入的次数。
示例:
$ dd if=input of=output bs=1 skip=332327467 count=128