Linuxで物理メモリをダンプするにはどうすればよいですか?


22

Linuxで物理メモリ(RAM)のダンプをどのように作成しますか?

この目的で利用可能なソフトウェアがある場合、どのソフトウェアですか?

ローカルディスクに書き込むのではなく、ネットワーク経由でデータを送信する必要があることを読みました。誰もがここの特性を知っていますか?イーサネットはこの目的のために機能しますか、またはディスクに送信する前にキャッシュの量を最小化するコマンドがありますか?

Windows上のWinHexには次の機能があります。

ここに画像の説明を入力してください

Linuxで似たようなものを探しています。

回答:


22

Linuxメモリをダンプする方法に関するeHowページがあります

Linuxは、この目的のために「/dev/mem」と「/dev/kmem」の2つの仮想デバイスを提供していますが、多くのディストリビューションはセキュリティ上の理由からデフォルトでそれらを無効にします。' /dev/mem'は物理システムメモリにリンクされ、' 'は/dev/kmemスワップを含む仮想メモリスペース全体にマップされます。どちらのデバイスも通常のファイルとして機能し、ddまたはその他のファイル操作ツールで使用できます。

それは、Linux / Unixセクションを含むメモリイメージングツールの ForensicsWikiページにつながります。

  1. dd Unixシステムでは、プログラムddを使用して、デバイスファイル(/ dev / memや/ dev / kmemなど)を使用して物理メモリの内容をキャプチャできます。最近のLinuxカーネルでは、/ dev / kmemは使用できなくなりました。さらに最近のカーネルでは、/ dev / memに追加の制限があります。また、最新のバージョンでは、/ dev / memもデフォルトで使用できなくなりました。2.6カーネルシリーズを通じて、疑似デバイスファイルを介したメモリへの直接アクセスを減らす傾向がありました。たとえば、このパッチに付随するメッセージhttp://lwn.net/Articles/267427/を参照してください。Red Hatシステム(およびCentOSなどの派生ディストリビューション)では、クラッシュドライバーをロードして、メモリアクセス用の擬似デバイスを作成できます(「modprobeクラッシュ」)。
  2. Second Look この商用メモリ分析製品には、ローカルまたはリモートターゲットからDMAまたはネットワーク経由でLinuxシステムからメモリを取得する機能があります。最も一般的に使用されるLinuxディストリビューションの何百ものカーネル用のプリコンパイルされたPMAD(Physical Memory Access Driver)モジュールが付属しています。
  3. Idetect(Linux)
  4. fmem(Linux)
    fmemはカーネルモジュールであり、/ dev / memに似ていますが制限なしにデバイス/ dev / fmemを作成します。このデバイス(物理RAM)は、ddまたは他のツールを使用してコピーできます。2.6 Linuxカーネルで動作します。GNU GPLの下。
  5. Goldfish
    Goldfishは、法執行機関のみが使用するMac OS Xのライブフォレンジックツールです。その主な目的は、Firewire接続を介してターゲットマシンのシステムRAMをダンプするための使いやすいインターフェースを提供することです。次に、現在のユーザーログインパスワードと、使用可能なAOLインスタントメッセンジャーの会話フラグメントを自動的に抽出します。法執行機関は、ダウンロード情報についてgoldfish.aeに連絡する場合があります。

関連項目:Linux Memory Analysis。ほとんどのLinuxで一般的に利用可能なGDB
もあります。 また、不明なメモリへの書き込みを避けることを常にお勧めします。システムの破損につながる可能性があります。


1
誰かが最近のUbuntuシステムでこれを試しましたか?

1
私のdebianシステムには/ dev / memも/ dev / kmemもありません。
ロブ

私はちょうどCentOS 7.x VMでそれをしました。
slm

4

ボラティリティはうまく機能しているようで、WindowsおよびLinux互換です。

彼らのウェブサイトから:

揮発性は、XP、2003 Server、Vista、Server 2008、Server 2008 R2、Sevenを含むすべての主要な32ビットおよび64ビットWindowsバージョンおよびサービスパックからのメモリダンプをサポートします。メモリダンプが未加工形式、Microsoftクラッシュダンプ、休止状態ファイル、または仮想マシンのスナップショットのいずれであっても、Volatilityはそれを使用できます。また、未加工またはLiME形式のLinuxメモリダンプをサポートし、2.6.11-3.5.xの32ビットおよび64ビットLinuxカーネルとDebian、Ubuntu、OpenSuSE、Fedora、CentOSなどのディストリビューションを分析するための35以上のプラグインが含まれています。マンドラケ。32ビットおよび64ビットの10.5から10.8.3 Mountain LionまでのMac OSXメモリダンプの38バージョンをサポートしています。ARMプロセッサを搭載したAndroidフォンもサポートされています。



0

確認として、このメソッドを使用してCentOS 7.x VMのメモリをダンプできました。

$ head /dev/mem | hexdump -C
00000000  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
00000010  53 ff 00 f0 53 ff 00 f0  cc e9 00 f0 53 ff 00 f0  |S...S.......S...|
00000020  a5 fe 00 f0 87 e9 00 f0  53 ff 00 f0 46 e7 00 f0  |........S...F...|
00000030  46 e7 00 f0 46 e7 00 f0  57 ef 00 f0 53 ff 00 f0  |F...F...W...S...|
00000040  22 00 00 c0 4d f8 00 f0  41 f8 00 f0 fe e3 00 f0  |"...M...A.......|
00000050  39 e7 00 f0 59 f8 00 f0  2e e8 00 f0 d4 ef 00 f0  |9...Y...........|
00000060  a4 f0 00 f0 f2 e6 00 f0  6e fe 00 f0 53 ff 00 f0  |........n...S...|
00000070  ed ef 00 f0 53 ff 00 f0  c7 ef 00 f0 ed 57 00 c0  |....S........W..|
00000080  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
*
00000100  59 ec 00 f0 3d 00 c0 9f  53 ff 00 f0 ed 69 00 c0  |Y...=...S....i..|
00000110  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
*
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000afea0  00 00 00 00 00 00 00 00  aa aa aa 00 aa aa aa 00  |................|
000afeb0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
...
...
000b0000  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
000c0000  55 aa 40 e9 62 0a 00 00  00 00 00 00 00 00 00 00  |U.@.b...........|
000c0010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 49 42  |..............IB|
000c0020  4d 00 9c 80 fc 0f 75 06  e8 4f 01 e9 bc 00 80 fc  |M.....u..O......|

この55aahがc0000h-effffhの範囲で発生すると、PNP拡張ヘッダーである可能性があります。

参照:BIOSブート仕様

3.3 PnP拡張ヘッダーを備えたデバイス

オプションROMを備えたすべてのIPLデバイスには、2k境界のシステムメモリアドレスC0000hとEFFFFhの間にあり、55AAhで始まる有効なオプションROMヘッダーが含まれている必要があります。デバイスの起動は、PnP拡張ヘッダーがある場合にのみ制御できます。アドレスがオフセット+ 1Ahの標準オプションROMヘッダー内にある拡張ヘッダーには、デバイスの構成に使用される重要な情報が含まれています。BIOSがデバイスから起動するために呼び出すデバイスのオプションROM(BCVまたはBEV)のコードへのポインターも含まれています。PnP拡張ヘッダーの構造については、付録Aを参照してください。PnP拡張ヘッダーを持つIPLデバイスを起動するには2つの方法があります。BCVまたはBEVが含まれている必要があります。

参照資料

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