1. 1. 一、内存获取(Memory Acquisition)
    1. 1.1. 1.1 获取工具对比
    2. 1.2. 1.2 获取操作
    3. 1.3. 1.3 其他内存数据源
  2. 2. 二、Volatility 3 基础
    1. 2.1. 2.1 安装
    2. 2.2. 2.2 Volatility 3 vs Volatility 2
    3. 2.3. 2.3 基本命令格式
  3. 3. 三、进程分析插件
    1. 3.1. 3.1 windows.pslist — 进程列表
    2. 3.2. 3.2 windows.pstree — 进程树
    3. 3.3. 3.3 windows.cmdline — 进程命令行
    4. 3.4. 3.4 windows.dlllist — 已加载 DLL
    5. 3.5. 3.5 windows.handles — 打开的句柄
  4. 4. 四、网络分析插件
    1. 4.1. 4.1 windows.netscan — 网络连接
    2. 4.2. 4.2 windows.netstat — 网络状态
  5. 5. 五、检测进程注入 — malfind
    1. 5.1. 5.1 windows.malfind 概述
    2. 5.2. 5.2 使用方法
    3. 5.3. 5.3 结果解读
    4. 5.4. 5.4 提取注入的代码
  6. 6. 六、检测 Rootkit
    1. 6.1. 6.1 windows.ssdt — SSDT Hook 检测
    2. 6.2. 6.2 隐藏进程检测
    3. 6.3. 6.3 驱动检测
  7. 7. 七、注册表与凭据提取
    1. 7.1. 7.1 windows.registry.hivelist — 注册表 Hive 列表
    2. 7.2. 7.2 windows.registry.printkey — 读取注册表键
    3. 7.3. 7.3 windows.hashdump — 提取密码 Hash
    4. 7.4. 7.4 windows.lsadump — LSA Secrets
    5. 7.5. 7.5 windows.cachedump — 域缓存凭据
  8. 8. 八、高级分析插件
    1. 8.1. 8.1 windows.vadinfo — 虚拟地址描述符
    2. 8.2. 8.2 windows.memmap — 内存映射
    3. 8.3. 8.3 windows.filescan — 文件扫描
    4. 8.4. 8.4 windows.dumpfiles — 文件提取
    5. 8.5. 8.5 windows.envars — 环境变量
  9. 9. 九、实战案例:完整内存取证流程
    1. 9.1. 9.1 场景描述
    2. 9.2. 9.2 分析步骤
    3. 9.3. 9.3 IOC 汇总
  10. 10. 十、自动化脚本与最佳实践
    1. 10.1. 10.1 Volatility 3 批量分析脚本
    2. 10.2. 10.2 最佳实践
  11. 11. 参考链接

Windows应急响应 - 34 内存取证-Volatility

内存取证-Volatility

前置说明

内存取证(Memory Forensics)是 IR 中最强大的技术之一,能发现磁盘取证无法发现的威胁

适用场景:fileless malware、进程注入、rootkit、凭据提取、加密数据恢复

核心工具:Volatility 3(Python,无需 profile)是当前标准

关联页面:29-取证工具 | 06-进程与网络分析 | 35-恶意软件基础分析


一、内存获取(Memory Acquisition)

1.1 获取工具对比

工具 类型 输出格式 优点 缺点
WinPmem 开源 CLI RAW/AFF4 免费、轻量、支持 AFF4 可能被 AV 检测
DumpIt 免费 CLI RAW 极简、双击运行、IR 首选 仅 RAW 格式
FTK Imager 商业 GUI RAW/AD1 GUI 友好、同时可做磁盘镜像 体积较大
Magnet RAM Capture 免费 GUI RAW 简单易用 功能单一
Comae (DumpIt 2.0) 免费 CLI DMP/RAW 支持 Microsoft crash dump 格式 需注册
Belkasoft RAM Capturer 免费 GUI RAW 绕过某些 AV/EDR 的内存保护 功能单一

1.2 获取操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# === WinPmem ===
# 获取完整物理内存
winpmem_mini_x64.exe C:\Evidence\memory.raw

# === DumpIt ===
# 双击运行或命令行
DumpIt.exe /O C:\Evidence\memory.raw
# 按 y 确认开始获取

# === FTK Imager (命令行) ===
# 使用 FTK Imager 的 Memory Capture 功能
# File → Capture Memory → 选择输出路径

# === Comae DumpIt ===
DumpIt.exe /OUTPUT C:\Evidence\memory.dmp /QUIET

获取注意事项:

获取过程会修改内存(获取工具本身占用内存),这是不可避免的

输出到外部 USB 或网络共享,不要输出到本机磁盘(减少写入影响)

文件大小 = 物理内存大小(如 16GB RAM → 16GB 文件)

获取前不要重启系统!重启会丢失所有内存数据

某些 EDR/AV 可能阻止内存获取,可能需要临时禁用或使用特殊工具

1.3 其他内存数据源

休眠文件(Hibernation File):

路径:C:\hiberfil.sys

包含休眠时的完整内存快照

Volatility 可以直接解析(支持 hibr 格式)

崩溃转储(Crash Dump):

路径:C:\Windows\MEMORY.DMP(完整转储)

路径:C:\Windows\Minidump\*.dmp(小型转储)

完整转储包含全部物理内存,可用 Volatility 分析

虚拟机快照/内存文件:

VMware: .vmem 文件

Hyper-V: .bin 文件

VirtualBox: .sav 文件

这些文件可以直接作为 Volatility 输入

1
2
3
4
5
6
7
8
9
10
# 检查是否有休眠文件
Get-Item C:\hiberfil.sys -Force -ErrorAction SilentlyContinue |
Select-Object FullName, @{N='SizeGB';E={[math]::Round($_.Length/1GB,2)}}

# 检查是否有崩溃转储
Get-Item "C:\Windows\MEMORY.DMP" -ErrorAction SilentlyContinue
Get-ChildItem "C:\Windows\Minidump\" -ErrorAction SilentlyContinue

# 复制休眠文件(需要管理员权限)
Copy-Item C:\hiberfil.sys C:\Evidence\hiberfil.sys -Force

二、Volatility 3 基础

2.1 安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 方式一:pip 安装
pip install volatility3

# 方式二:从源码安装
git clone https://github.com/volatilityfoundation/volatility3.git
cd volatility3
pip install -r requirements.txt

# 方式三:使用预编译的独立版本
# 从 GitHub Releases 下载 vol.exe

# 验证安装
vol -h
# 或
python -m volatility3 -h

2.2 Volatility 3 vs Volatility 2

特性 Volatility 2 Volatility 3
语言 Python 2 Python 3
Profile 必须指定 --profile=Win10x64_xxxx 自动识别(无需 profile)
插件命名 pslistnetscan windows.pslistwindows.netscan
速度 较慢 更快
维护状态 停止维护 活跃开发

强烈建议使用 Volatility 3,Volatility 2 仅在需要特定老插件时才使用

2.3 基本命令格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Volatility 3 基本格式
vol -f <memory_dump> <plugin_name> [options]

# 示例
vol -f C:\Evidence\memory.raw windows.pslist

# 输出为 JSON
vol -f C:\Evidence\memory.raw -r json windows.pslist > pslist.json

# 输出为 CSV(便于 Timeline Explorer)
vol -f C:\Evidence\memory.raw -r csv windows.pslist > pslist.csv

# 查看可用插件
vol -f C:\Evidence\memory.raw --help

# 列出所有 Windows 插件
vol --help | findstr "windows."

三、进程分析插件

3.1 windows.pslist — 进程列表

1
2
3
4
5
# 列出所有活动进程
vol -f C:\Evidence\memory.raw windows.pslist

# 输出字段:
# PID | PPID | ImageFileName | Offset | Threads | Handles | SessionId | CreateTime | ExitTime

IR 分析要点:

检查是否有同名但 PID/PPID 异常的进程(如多个 lsass.exe)

检查 ExitTime 不为空但仍在列表中的进程(僵尸进程)

注意 CreateTime 异常的进程(与系统启动时间不符)

3.2 windows.pstree — 进程树

1
2
3
4
5
6
7
8
9
10
11
12
# 以树形结构显示进程
vol -f C:\Evidence\memory.raw windows.pstree

# 输出示例:
# PID PPID ImageFileName
# 4 0 System
# * 396 4 smss.exe
# ** 524 396 csrss.exe
# ** 596 396 wininit.exe
# *** 672 596 services.exe
# **** 1024 672 svchost.exe
# *** 684 596 lsass.exe

IR 分析要点:

31-Sysinternals套件 中的正常进程树对比

查找不属于正常树结构的进程

查找由异常父进程(如 Word → cmd → powershell)创建的进程

3.3 windows.cmdline — 进程命令行

1
2
3
4
5
6
7
# 提取所有进程的完整命令行参数
vol -f C:\Evidence\memory.raw windows.cmdline

# 输出示例:
# PID Process Args
# 1024 svchost.exe C:\Windows\system32\svchost.exe -k netsvcs -p
# 5678 powershell.exe powershell.exe -enc JABjAGwAaQBlAG4AdAA...

IR 分析要点:

查找编码的命令(-enc-e-encodedcommand

查找可疑参数(-nop -w hidden -c "IEX(...)"

查找非标准路径的程序(C:\Users\Public\svchost.exe

3.4 windows.dlllist — 已加载 DLL

1
2
3
4
5
# 列出所有进程加载的 DLL
vol -f C:\Evidence\memory.raw windows.dlllist

# 只查看特定进程的 DLL
vol -f C:\Evidence\memory.raw windows.dlllist --pid 1234

IR 分析要点:

查找从非标准路径(Temp、AppData、ProgramData)加载的 DLL

查找名称可疑的 DLL

与正常 DLL 列表对比

3.5 windows.handles — 打开的句柄

1
2
3
4
5
# 列出所有打开的句柄
vol -f C:\Evidence\memory.raw windows.handles

# 过滤特定进程
vol -f C:\Evidence\memory.raw windows.handles --pid 1234

IR 要点:查找恶意软件的 Mutex、访问的文件和注册表键


四、网络分析插件

4.1 windows.netscan — 网络连接

1
2
3
4
5
# 扫描内存中的网络连接信息
vol -f C:\Evidence\memory.raw windows.netscan

# 输出字段:
# Offset | Proto | LocalAddr | LocalPort | ForeignAddr | ForeignPort | State | PID | Owner | Created

IR 分析要点:

查找 ESTABLISHED 连接到外部 IP(潜在 C2)

查找 LISTENING 在非标准端口的进程

查找 cmd.exe/powershell.exe 的网络连接

记录所有外部 IP 用于 IOC 匹配

1
2
3
# 提取所有外部连接的 IP 列表
vol -f C:\Evidence\memory.raw -r csv windows.netscan > netscan.csv
# 后续可用脚本过滤出非内网 IP

4.2 windows.netstat — 网络状态

1
2
# 类似 netstat 的输出格式
vol -f C:\Evidence\memory.raw windows.netstat

与 netscan 类似,但数据来源不同(从内核数据结构而非扫描内存)

建议两者都运行,交叉验证


五、检测进程注入 — malfind

5.1 windows.malfind 概述

malfind 是内存取证中最重要的检测插件之一

它检测进程虚拟地址空间中的可疑内存区域:

RWX(Read-Write-Execute)内存页:正常程序很少有 RWX 页

非映像区域中的 PE 头:内存中存在没有对应磁盘文件的 PE(可能是注入的 shellcode 或 DLL)

VAD(Virtual Address Descriptor)标记异常

5.2 使用方法

1
2
3
4
5
6
7
8
# 扫描所有进程的可疑内存区域
vol -f C:\Evidence\memory.raw windows.malfind

# 只扫描特定进程
vol -f C:\Evidence\memory.raw windows.malfind --pid 1234

# 输出字段:
# PID | Process | Start VPN | End VPN | Tag | Protection | CommitCharge | PrivateMemory | Hexdump | Disasm

5.3 结果解读

输出示例(注入检测):

1
2
3
4
5
6
PID: 672  Process: svchost.exe
Start VPN: 0x2a00000 End VPN: 0x2a0ffff
Tag: VadS Protection: PAGE_EXECUTE_READWRITE

0x02a00000: 4d 5a 90 00 03 00 00 00 MZ......
0x02a00008: 04 00 00 00 ff ff 00 00 ........

分析要点:

MZ 开头 + PAGE_EXECUTE_READWRITE = 高度可疑,很可能是注入的 PE

Tag: VadS 表示私有内存(非文件映射),正常 DLL 应该是 VadF(文件映射)

PAGE_EXECUTE_READWRITE 权限很少在正常程序中出现

误报排除:

某些合法软件(JIT 编译器如 .NET CLR、Java、V8)会使用 RWX 内存

某些安全软件也会注入 DLL

需要结合进程名称和注入内容判断

5.4 提取注入的代码

1
2
3
4
5
6
7
8
9
10
11
# 从可疑内存区域 dump 数据
vol -f C:\Evidence\memory.raw windows.malfind --pid 672 --dump
# 输出:pid.672.vad.0x2a00000-0x2a0ffff.dmp

# 对 dump 出的数据进行分析
# 1. 检查是否是 PE 文件
# 2. 使用 strings 提取字符串
strings pid.672.vad.0x2a00000-0x2a0ffff.dmp

# 3. 提交到 VirusTotal
# 4. 使用 YARA 规则扫描

六、检测 Rootkit

6.1 windows.ssdt — SSDT Hook 检测

1
2
3
4
5
# 检查 System Service Descriptor Table 是否被 hook
vol -f C:\Evidence\memory.raw windows.ssdt

# 正常情况下,SSDT 条目应指向 ntoskrnl.exe 或 win32k.sys
# 如果指向其他模块 → 可能是 rootkit hook

SSDT 是内核级系统调用表,rootkit 通过修改 SSDT 拦截系统调用

现代 Windows(64-bit + Kernel Patch Protection/PatchGuard)使 SSDT hook 更困难

但仍需检查(某些 rootkit 可绕过 PatchGuard)

6.2 隐藏进程检测

1
2
3
4
5
6
7
8
9
# 方法一:对比 pslist 和 psscan
# pslist: 遍历活动进程链表(EPROCESS 双向链表)
# psscan: 扫描内存中的 EPROCESS 结构特征
# 如果 psscan 发现了 pslist 中没有的进程 → 可能是隐藏进程

vol -f C:\Evidence\memory.raw windows.pslist -r csv > pslist.csv
vol -f C:\Evidence\memory.raw windows.psscan -r csv > psscan.csv

# 手动对比两个列表,找出差异(隐藏进程)

原理: Rootkit 通过从活动进程链表中摘除 EPROCESS 来隐藏进程

pslist 只能看到链表中的进程

psscan 通过特征扫描物理内存,能找到被摘除的进程

6.3 驱动检测

1
2
3
4
5
6
# 列出内核模块/驱动
vol -f C:\Evidence\memory.raw windows.modules
vol -f C:\Evidence\memory.raw windows.driverscan

# 检查未签名的驱动
# 对比已知正常驱动列表

七、注册表与凭据提取

7.1 windows.registry.hivelist — 注册表 Hive 列表

1
2
3
4
5
6
7
8
9
10
# 列出内存中加载的注册表 Hive
vol -f C:\Evidence\memory.raw windows.registry.hivelist

# 输出示例:
# Offset FileFullPath
# 0xe10008a0b000 \REGISTRY\MACHINE\SYSTEM
# 0xe10008a15000 \REGISTRY\MACHINE\SOFTWARE
# 0xe10008a20000 \REGISTRY\MACHINE\SAM
# 0xe10008a2b000 \SystemRoot\System32\Config\SECURITY
# 0xe10009100000 \??\C:\Users\admin\ntuser.dat

7.2 windows.registry.printkey — 读取注册表键

1
2
3
4
5
6
7
8
9
10
11
# 读取 Run 键(持久化检查)
vol -f C:\Evidence\memory.raw windows.registry.printkey --key "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"

# 读取服务列表
vol -f C:\Evidence\memory.raw windows.registry.printkey --key "SYSTEM\CurrentControlSet\Services"

# 读取计算机名
vol -f C:\Evidence\memory.raw windows.registry.printkey --key "SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName"

# 读取网络配置
vol -f C:\Evidence\memory.raw windows.registry.printkey --key "SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces"

7.3 windows.hashdump — 提取密码 Hash

1
2
3
4
5
6
7
8
# 从 SAM 中提取本地账户的 NTLM hash
vol -f C:\Evidence\memory.raw windows.hashdump

# 输出示例:
# User rid lmhash nthash
# Administrator 500 aad3b435b51404eeaad3b435b51404ee 31d6cfe0d16ae931b73c59d7e0c089c0
# Guest 501 aad3b435b51404eeaad3b435b51404ee 31d6cfe0d16ae931b73c59d7e0c089c0
# user1 1001 aad3b435b51404eeaad3b435b51404ee a87f3a337d73085c45f9416be5787d86

注意:

aad3b435b51404eeaad3b435b51404ee 是空 LM hash(Windows 7+ 默认不存储 LM hash)

31d6cfe0d16ae931b73c59d7e0c089c0 是空密码的 NTLM hash

提取的 hash 可用于判断是否使用弱密码或相同密码

7.4 windows.lsadump — LSA Secrets

1
2
# 提取 LSA Secrets(可能包含服务账户密码、VPN 密码等)
vol -f C:\Evidence\memory.raw windows.lsadump

LSA Secrets 中可能存储:

服务账户的明文密码

自动登录密码

VPN/网络凭据

DPAPI master key

7.5 windows.cachedump — 域缓存凭据

1
2
# 提取域缓存凭据(DCC2 hash)
vol -f C:\Evidence\memory.raw windows.cachedump

域环境中,Windows 会缓存最近登录的域用户凭据(默认 10 个)

DCC2 hash 可离线破解(但比 NTLM hash 慢得多)


八、高级分析插件

8.1 windows.vadinfo — 虚拟地址描述符

1
2
3
4
5
6
7
8
# 查看进程的 VAD 树(虚拟地址空间布局)
vol -f C:\Evidence\memory.raw windows.vadinfo --pid 1234

# VAD 信息包括:
# - 内存区域起止地址
# - 保护属性(读/写/执行)
# - 映射类型(文件映射 / 私有 / 共享)
# - 关联的文件路径(如果是文件映射)

IR 用途:辅助 malfind 分析,了解进程的完整内存布局

8.2 windows.memmap — 内存映射

1
2
# 导出进程的完整内存空间
vol -f C:\Evidence\memory.raw windows.memmap --pid 1234 --dump

当需要对进程做完整的内存分析时使用

8.3 windows.filescan — 文件扫描

1
2
3
4
5
6
# 扫描内存中的文件对象
vol -f C:\Evidence\memory.raw windows.filescan

# 查找特定文件
vol -f C:\Evidence\memory.raw windows.filescan | findstr /i "malware.exe"
vol -f C:\Evidence\memory.raw windows.filescan | findstr /i "mimikatz"

8.4 windows.dumpfiles — 文件提取

1
2
3
4
5
# 从内存中提取文件(即使磁盘上已删除)
vol -f C:\Evidence\memory.raw windows.dumpfiles --physaddr 0x12345678

# 提取特定进程的可执行文件
vol -f C:\Evidence\memory.raw windows.pslist --pid 1234 --dump

IR 关键场景:恶意软件自删除后,仍可能从内存中恢复

8.5 windows.envars — 环境变量

1
2
3
4
5
# 提取进程的环境变量
vol -f C:\Evidence\memory.raw windows.envars

# 过滤特定进程
vol -f C:\Evidence\memory.raw windows.envars --pid 1234

环境变量中可能包含攻击者设置的路径或配置


九、实战案例:完整内存取证流程

9.1 场景描述

EDR 告警显示某主机上 svchost.exe 存在异常网络连接

目标:确认是否被入侵、找出攻击方式、提取 IOC

9.2 分析步骤

Step 1: 获取内存

1
2
# 在目标主机上运行
DumpIt.exe /O \\fileserver\evidence\host01_memory.raw

Step 2: 进程分析

1
2
3
4
5
6
7
8
9
10
11
12
# 查看进程树
vol -f memory.raw windows.pstree
# 发现 svchost.exe (PID 2468) 的父进程是 cmd.exe (PID 3456)
# 正常 svchost.exe 的父进程应该是 services.exe → 异常!

# 查看命令行
vol -f memory.raw windows.cmdline --pid 2468
# CommandLine: C:\Users\Public\svchost.exe -c config.dat
# 路径不在 System32 → 确认异常

vol -f memory.raw windows.cmdline --pid 3456
# CommandLine: cmd.exe /c C:\Users\Public\svchost.exe -c config.dat

Step 3: 网络分析

1
2
3
4
# 查看网络连接
vol -f memory.raw windows.netscan
# 发现 PID 2468 (svchost.exe) 连接到 45.33.32.156:443
# 记录 C2 IP: 45.33.32.156

Step 4: 注入检测

1
2
3
4
5
6
# 检查进程注入
vol -f memory.raw windows.malfind --pid 2468
# 发现 RWX 内存区域,含 MZ 头 → 确认进程注入

# 提取注入的代码
vol -f memory.raw windows.malfind --pid 2468 --dump

Step 5: DLL 分析

1
2
3
# 查看加载的 DLL
vol -f memory.raw windows.dlllist --pid 2468
# 发现加载了 C:\Users\Public\payload.dll → 可疑 DLL

Step 6: 持久化检查

1
2
3
# 从内存中读取注册表
vol -f memory.raw windows.registry.printkey --key "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
# 发现: WindowsUpdate = C:\Users\Public\svchost.exe -c config.dat

Step 7: 凭据检查

1
2
3
# 提取密码 hash(评估横向移动风险)
vol -f memory.raw windows.hashdump
vol -f memory.raw windows.lsadump

Step 8: 文件恢复

1
2
3
# 从内存中恢复恶意文件
vol -f memory.raw windows.filescan | findstr /i "Users\\Public"
vol -f memory.raw windows.dumpfiles --physaddr <offset>

9.3 IOC 汇总

1
2
3
4
5
6
7
8
=== IOC Report ===
[File] C:\Users\Public\svchost.exe (fake svchost)
[File] C:\Users\Public\payload.dll
[File] C:\Users\Public\config.dat
[Network] C2: 45.33.32.156:443
[Registry] HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\WindowsUpdate
[Process] svchost.exe spawned by cmd.exe (abnormal parent)
[Injection] RWX memory region in PID 2468 with PE header

十、自动化脚本与最佳实践

10.1 Volatility 3 批量分析脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Volatility 3 自动化分析脚本
param(
[Parameter(Mandatory=$true)]
[string]$MemoryDump,
[string]$OutputDir = "C:\Evidence\vol3_$(Get-Date -Format 'yyyyMMdd_HHmmss')"
)

New-Item -ItemType Directory -Path $OutputDir -Force | Out-Null

$plugins = @(
"windows.pslist",
"windows.pstree",
"windows.cmdline",
"windows.netscan",
"windows.netstat",
"windows.dlllist",
"windows.handles",
"windows.malfind",
"windows.registry.hivelist",
"windows.hashdump",
"windows.lsadump",
"windows.filescan",
"windows.ssdt",
"windows.envars"
)

Write-Host "[*] Starting Volatility 3 analysis on: $MemoryDump" -ForegroundColor Cyan

foreach ($plugin in $plugins) {
$outFile = "$OutputDir\$($plugin.Replace('.','_')).csv"
Write-Host "[+] Running $plugin..."
try {
vol -f $MemoryDump -r csv $plugin 2>$null | Out-File $outFile -Encoding UTF8
Write-Host " -> Saved to $outFile" -ForegroundColor Green
} catch {
Write-Host " -> Failed: $_" -ForegroundColor Red
}
}

Write-Host "[*] Analysis complete. Output: $OutputDir" -ForegroundColor Cyan
Get-ChildItem $OutputDir -File | Format-Table Name, @{N='SizeKB';E={[math]::Round($_.Length/1KB,2)}} -AutoSize

10.2 最佳实践

获取阶段:

优先获取内存,其次再做磁盘取证

使用外部存储保存内存 dump

记录获取时间和工具版本

分析阶段:

先跑 pslist + pstree 建立进程概览

再跑 netscan 找网络连接

用 malfind 做注入检测

最后根据发现做针对性分析

证据链:

保留原始内存 dump,分析在副本上进行

计算内存 dump 的 hash 值

记录每个分析步骤和发现


参考链接

Volatility 3 GitHub

Volatility 3 文档

The Art of Memory Forensics (书)

SANS Memory Forensics Poster

MemProcFS — 另一个优秀的内存分析框架

关联页面:29-取证工具 | 06-进程与网络分析 | 35-恶意软件基础分析


上一章 目录 下一章
33-事件日志分析工具 Windows应急响应 35-恶意软件基础分析