メモリダンプのオフセット X の行を各側に +/- 10 行印刷します。

メモリダンプのオフセット X の行を各側に +/- 10 行印刷します。

調査して掘り下げている巨大なメモリ イメージがあります (64 GB 以上)。メモリ/vim に読み込むには大きすぎます。オフセットを含めたメモリ ファイルで文字列を実行し、ファイルに保存して、興味のあるインジケーターを検索できるようにしました。出力例:

332327467 Washington1 
332327514 Redmond1 
332327536 Microsoft Corporation1

これらのオフセットの 1 つを取得して、メモリ内の特定の領域を印刷するにはどうすればよいでしょうか。理想的には、そこから +/- 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

を使用する場合は、一度に読み書きする量 ( offset= * )をdd指定できます。 Count は、読み書きする回数です。 例:skip=
bsbsskip

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

関連情報