Linuxシステムからメモリイメージをダンプする方法は?


18

Windowsでメモリイメージをダンプすることを知っています。(eg-dumpit)しかし、Linuxでメモリイメージをダンプする方法がわかりません。

LinuxおよびLinuxからssh接続などを使用してLinuxにメモリイメージを取得したい。

Linuxで入手するにはどうすればよいですか?


5
実行中のプロセス、カーネルメモリ、または物理メモリからメモリを取得しようとしていますか?すべて利用できますが、アクセス方法は異なります。/ dev / kmem、/ dev / mem、/ proc / kcore、/ proc / $ pid / maps、および/ proc / $ pid / memを参照してください。
ケーシー14年

このSU Q&Aを見てみましょう:superuser.com/questions/164960/...を
SLM

回答:


26

フォレンジックのWikiから:Tools:Memory Imaging

抜粋

Linux

/ dev / mem

古いLinuxシステムでは、プログラムddを使用して、デバイスファイル/ dev / memから物理メモリの内容を読み取ることができます。ただし、最近のLinuxシステムでは、/ dev / memは、システムの物理メモリ全体ではなく、制限された範囲のアドレスへのアクセスのみを提供します。他のシステムでは、まったく利用できない場合があります。Linuxカーネル2.6シリーズでは、擬似デバイスファイルを介したメモリへの直接アクセスを減らす傾向がありました。たとえば、このパッチに付随するメッセージhttp://lwn.net/Articles/267427/を参照してください

/ dev / crash

Red Hatシステム(およびFedoraやCentOSなどの関連するディストリビューションを実行しているシステム)では、クラッシュドライバーをロードして、raw物理メモリアクセス用の擬似デバイス/ dev / crashを作成できます(「modprobe crash」コマンドを使用)。このモジュールは、他のLinuxディストリビューション用にわずかな労力でコンパイルすることもできます(たとえば、http://gleeda.blogspot.com/2009/08/devcrash-driver.htmlを参照)。クラッシュドライバーが他のシステムで変更、コンパイル、およびロードされると、結果のメモリアクセスデバイスは完全にイメージ化するのに安全ではありません。RAMに裏打ちされていないアドレスを避けるように注意する必要があります。Linuxでは、/ proc / iomemは、「システムRAM」とマークされた正しいアドレス範囲をイメージに公開します。

セカンドルック:Linuxメモリフォレンジック

この商用メモリフォレンジック製品には、クラッシュドライバの修正バージョンと、任意のLinuxシステムで元のドライバまたは修正されたドライバを使用してメモリを安全にダンプするためのスクリプトが付属しています。

fmem fmem-githubリポジトリ

fmemは、/ dev / memに似ていますが、制限のないデバイス/ dev / fmemを作成するカーネルモジュールです。このデバイス(物理RAM)は、ddまたは他のツールを使用してコピーできます。2.6 Linuxカーネルで動作します。GNU GPLの下。

LiME-Linuxメモリエクストラクター

Linux Memory Extractor(LiME)はLoadable Kernel Module(LKM)であり、これによりAndroidおよびLinuxベースのデバイス(Android搭載など)から揮発性メモリを取得できます。このツールは、デバイスのファイルシステムまたはネットワークを介したメモリのダンプをサポートしています。

このfmem使用例は、分析目的でメモリをダンプする最も簡単な方法であるように見えますが/dev/mem、2.6.xカーネル以降は使用できなくなりました。

fmemの例

$ ./run.sh
...
----Memory areas: -----
reg00: base=0x000000000 (    0MB), size= 1024MB, count=1: write-back
reg01: base=0x0c8800000 ( 3208MB), size=    2MB, count=1: write-combining
-----------------------
!!! Don't forget add "count=" to dd !!!


$ ls /dev/f*
/dev/fb0  /dev/fd0  /dev/fmem  /dev/full  /dev/fuse


$ sudo dd if=/dev/fmem of=/tmp/fmem_dump.dd bs=1MB count=10
10+0 records in
10+0 records out
10000000 bytes (10 MB) copied, 0.0331212 s, 302 MB/s

*出典: すべての物理メモリをファイルにダンプするにはどうすればよいですか?

LiMEの例

揮発性メモリを分析するために、Linux Memory Analysisというタイトルのこのページもあります。このビデオチュートリアルには、メモリダンプを収集して分析し、メモリダンプからユーザーのBash履歴を抽出するLiMEとVolatilityの使用方法を示す徹底的な例があります。

ほかに何か?

また、このU&Lに関するQ&A:システムメモリ全体をダンプする方法はありますか?追加の例と情報があります。



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.