はじめに
この記事は、実機にメモリダンプを行い、中身がどうなっているのかを勉強する目的で投稿しています。投稿者は初心者であるため、誤解していることがあればコメントをお願いします。メモリダンプについてはFTK Imager、解析にはVolatility3を使用しています。
再度言いますが、初心者です。どうか温かい目で見守ってください。
ダンプの種類
ダンプには,これから行うメモリダンプとクラッシュ時に生成されるクラッシュダンプの2種類があります。
- メモリダンプ:セキュリティ解析、証拠収集、パフォーマンス監視など幅広い目的で利用されます。
- クラッシュダンプ:トラブルシューティングやデバッグ目的で利用されることが多いです。
さっそくダンプ+解析
FTK Imagerを起動し、メモリっぽいアイコンをクリック!
パスを指定し、Capture Memoryをクリック!
ダンプしたメモリのサイズを見ると、19GBという表示が出た(ストレージカツカツなのに...)
投稿者のストレージ容量は置いといて、さっそくVolatility3で解析してみます。
vol3 -f memdump.mem windows.infoでメモリのメタ情報(バージョンやらタイムスタンプやら)を見ることができます。
$ vol3 -f memdump.mem windows.info
Volatility 3 Framework 2.28.0
Progress: 100.00 PDB scanning finished
Variable Value
Kernel Base 0xXXXXXXX
DTB 0xXXXXXX
Symbols file:///...
Is64Bit True
IsPAE False
layer_name 0 WindowsIntel32e
memory_layer 1 FileLayer
KdVersionBlock 0xf80382c0a9a0
Major/Minor 15.26100
MachineType 34404
KeNumberProcessors 16
SystemTime 2026-03-29 14:12:15+00:00
NtSystemRoot C:\WINDOWS
NtProductType NtProductWinNt
NtMajorVersion 10
NtMinorVersion 0
PE MajorOperatingSystemVersion 10
PE MinorOperatingSystemVersion 0
PE Machine 34404
PE TimeDateStamp Wed May 24 03:48:29 2006
主要な項目をさくっと載せます
- Kernel Base:カーネルのアドレス
- DTB:ページテーブルのルートアドレス
- Symbols:カーネルのデータ構造の定義情報
- Is64Bit:OSが64bitかどうか
- KdVersionBlock:カーネルのデバッグ構造体へのポインタアドレス
- Major/Minor:Windowsのビルド番号
- MachineType:CPUのアーキテクチャを表す値
- KeNumberProcessors CPUの論理プロセッサ数
- SystemTime:ダンプしたときの時刻
- NtSystemRoot:Windowsのルートディレクトリの場所
- NtProductType:Windowsの製品種別
これらの項目を読み取れば、メモリのメタ情報はある程度分かる...はず(多分)
他にもwindows.pslist.PsListを使ってプロセスにはどのようなものがあるかをまとめたいですが、今回は第一回なのでこのくらいにしたいと思います。多分次回やります。

