メモリダンプのオフセットXに行を印刷します(側面あたり+/- 10行)。

メモリダンプのオフセットXに行を印刷します(側面あたり+/- 10行)。

調査して採掘している大容量メモリイメージ(64GB以上)があります。大きすぎてメモリ/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

関連情報