fmem(メモリダンプツール)で生成されたdd画像をマウントする方法

fmem(メモリダンプツール)で生成されたdd画像をマウントする方法

私はこのツールを使ってfmemメモリダンプddファイルを作成します。良い結果。

しかし、この画像にどのようにアクセスできますか?試してみましたが、mountファイルシステムを指定する必要があると思います。しかし、与えられた可能性のどれも機能しません(ext4、vfatなど)。

答え1

fmemメモリスナップショットツール。 RAMコンテンツのイメージを生成します。

これは法医学や低レベルのデバッグに役立ちますが、ファイルシステムイメージではないため、どのような方法でもマウントできません。

答え2

自分で試してみると、このファイルは生データダンプ/メモリスナップショットに過ぎませんでした。したがって、16進エディタ、または同様のもの、hexdumpまたは適切なフォレンジック分析ツールを使用して確認できます。

ダウンロードとコンパイル

ここで最新バージョンを見つけましたfmem

解凍後、次のようにコンパイルできます。

$ make
rm -f *.o *.ko *.mod.c Module.symvers Module.markers modules.order \.*.o.cmd \.*.ko.cmd \.*.o.d
rm -rf \.tmp_versions
make -C /lib/modules/`uname -r`/build SUBDIRS=`pwd` modules
make[1]: Entering directory `/usr/src/kernels/3.14.4-100.fc19.x86_64'
  CC [M]  /home/saml/Downloads/fmem/fmem_1.6-0/lkm.o
  LD [M]  /home/saml/Downloads/fmem/fmem_1.6-0/fmem.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/saml/Downloads/fmem/fmem_1.6-0/fmem.mod.o
  LD [M]  /home/saml/Downloads/fmem/fmem_1.6-0/fmem.ko
make[1]: Leaving directory `/usr/src/kernels/3.14.4-100.fc19.x86_64'

fmemカーネルモジュールをロードするには、run.shアーカイブを使用して埋め込みスクリプトを実行できます。

$ sudo ./run.sh 
Module: insmod fmem.ko a1=0xffffffff81090ca0 : OK
Device: /dev/fmem
----Memory areas: -----
reg01: base=0x000000000 (    0MB), size= 2048MB, count=1: write-back
reg02: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back
reg03: base=0x100000000 ( 4096MB), size= 4096MB, count=1: write-back
reg04: base=0x200000000 ( 8192MB), size= 1024MB, count=1: write-back
reg05: base=0x23c000000 ( 9152MB), size=   64MB, count=1: uncachable
reg06: base=0x0bc000000 ( 3008MB), size=   64MB, count=1: uncachable
-----------------------
!!! Don't forget add "count=" to dd !!!

その後、〜10 MBのデータをファイルに収集できますtst.dd

$ sudo dd if=/dev/fmem of=tst.dd bs=1MB count=10
10+0 records in
10+0 records out
10000000 bytes (10 MB) copied, 0.0541226 s, 185 MB/s

生成されたファイルの確認

このファイルに一般的なツールを使用すると、生のバイナリデータ以外には何も含まれていないことがわかります。

文書

$ file tst.dd 
tst.dd: data

ディスクドライブ

$ fdisk -l tst.dd

Disk tst.dd: 9 MB, 9999872 bytes, 19531 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

16進ダンプ

$ hexdump -C tst.dd  | head -10
00000000  53 ff 00 f0 53 ff 00 f0  c3 e2 00 f0 53 ff 00 f0  |S...S.......S...|
00000010  53 ff 00 f0 54 ff 00 f0  c9 a3 00 f0 53 ff 00 f0  |S...T.......S...|
00000020  a5 fe 00 f0 87 e9 00 f0  9f 11 00 f0 9f 11 00 f0  |................|
00000030  9f 11 00 f0 9f 11 00 f0  57 ef 00 f0 49 f5 00 f0  |........W...I...|
00000040  14 00 00 c0 4d f8 00 f0  41 f8 00 f0 9f c7 71 e1  |....M...A.....q.|
00000050  39 e7 00 f0 59 f8 00 f0  99 66 71 e1 d2 ef 00 f0  |9...Y....fq.....|
00000060  57 ff 00 f0 f2 e6 00 f0  6e fe 00 f0 53 ff 00 f0  |W.......n...S...|
00000070  53 ff 00 f0 a4 f0 00 f0  c7 ef 00 f0 01 9b 00 c0  |S...............|
00000080  9f 11 00 f0 9f 11 00 f0  9f 11 00 f0 9f 11 00 f0  |................|

2fs調整

$ tune2fs -l tst.dd 
tune2fs 1.42.7 (21-Jan-2013)
tune2fs: Bad magic number in super-block while trying to open tst.dd
Couldn't find valid filesystem superblock.

$ sudo mount -o loop -t auto tst.dd /mnt/
mount: /dev/loop0 is write-protected, mounting read-only
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

情報

[332140.394396] fmem init_module 449: init
[332140.394401] fmem find_symbols 439: set guess_page_is_ram: ffffffff81090ca0
[333010.390836] loop: module loaded

メモリをダンプできるツールカテゴリの詳細については、リファレンスセクションのリソースのfmemリストを確認してください。

それでは、fmemのダンプファイルで何ができますか?

生成について議論する記事を見つけました。そしてこのファイルを分析します。次のタイトルの記事に記載されています。手がかりに従う:メモリ分析 - 管理ネットワーキングとセキュリティマガジン。この記事では2つのツールについて言及しました。悪魔&揮発性物質

抜粋

悪魔

PythonスクリプトDraugrは、Linuxで最も初期のメモリ分析ツールの1つです。 Draugrスクリプトを使用すると、ユーザーは疑似デバイスを介して実行されているシステムのメモリを直接調べることができます/dev/mem。ただし、Draugrはファイルで使用可能なメモリダンプも分析します。 Draugrの欠点は、機能がプロセスのリストと特定のメモリ領域の抽出に制限されることです。 Draugrの開発は2009年に中止されました。

揮発性物質

別のメモリ分析ツールはVolatilituxです。 Volatilituxは長い間Linuxと同等のツールと考えられてきました。Windowsシステムで使用するためのボラティリティツール。これで、ボラティリティ分析フレームワークにはLinuxサポートが組み込まれており、これについてはこの記事の後半で説明します。 Volatilityは利用可能なLinux RAM分析ツールの中で最も広範な機能を持っていますが、Volatilituxには2つの重要な機能がないことに注意する必要があります。

...

...

Draugrの既知の機能に加えて、Volatilituxを使用すると、プロセス内の開かれたファイルを表示および抽出できます。 2011年12月の新しいバージョンには64ビットのサポートが追加されました。

メモ:ウィンドウツール、揮発性fmemファイル出力の分析にも使用できます。

引用する

関連情報