oxsyoe/mem-walker
GitHub: oxsyoe/mem-walker
一款零依赖的单文件 Windows 数字取证与事件响应工具,集成进程、磁盘、注册表分析和熵检测,用于快速发现系统中的可疑痕迹。
Stars: 0 | Forks: 0
# 🔪 mem-walker
**Windows 数字取证工具** — 将内存、磁盘、注册表和实时响应整合在一个文件中。
[](https://python.org)
[](https://microsoft.com/windows)
[](LICENSE)
## 📌 什么是 mem-walker?
**mem-walker** 是一个**单文件 Python 工具**,用于对 Windows 系统执行取证分析。无需安装。无需依赖。可在事件发生时直接从 USB 闪存盘运行。
### 它能发现什么:
| 痕迹 | 它能检测的内容 |
|----------|-----------------|
| **进程** | 隐藏进程、可疑的父子关系、被重命名的系统进程 |
| **文件** | 位于 Temp/Downloads/AppData 中的可执行文件、小型 dropper(<100KB) |
| **注册表** | 持久化机制(Run 键)、DLL 注入点(AppInit_DLLs) |
| **字符串** | 任何文件中的密码、API 密钥、URL、IP 地址、电子邮件 |
| **熵值** | 加壳/加密/混淆文件(熵值 >7.5) |
| **网络** | 活动连接、监听端口 |
### 适用人群:
- 🔴 **事件响应人员** — 快速收集证据
- 🦠 **恶意软件分析师** — 检查可疑二进制文件
- 🕵️ **安全研究员** — 调查数字痕迹
- 🛡️ **蓝队** — 主动进行威胁狩猎
## ⚙️ 工作原理
### 架构概述
```
┌─────────────────────────────────────────────────────────────┐
│ mem-walker.py │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ --full │ │ --scan │ │ --scan-files│ │
│ │ Everything │ │ Processes │ │ Disk │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Windows API / Commands │ │
│ │ • tasklist (process enumeration) │ │
│ │ • wmic (process paths) │ │
│ │ • winreg (registry access) │ │
│ │ • os.walk (file scanning) │ │
│ │ • netstat (network connections) │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Output Generation │ │
│ │ • Console (color-coded) │ │
│ │ • JSON report (machine-readable) │ │
│ │ • CSV timeline (Excel-friendly) │ │
│ │ • HTML visualization (management-ready) │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
```
### 模块分解
| 模块 | Windows 实现 | 检测逻辑 |
|--------|------------------------|-----------------|
| **内存取证** | `tasklist` + `wmic` | 标记从 `\Temp\`、`\Downloads\`、`\AppData\` 运行的进程 |
| **磁盘取证** | `os.walk()` | 扫描 `C:\Users`、`C:\Windows\Temp`、`C:\ProgramData` 中的 `.exe`、`.dll`、`.ps1` |
| **注册表取证** | `winreg` API | 枚举 `HKLM\Run`、`HKCU\Run`,对照系统目录检查路径 |
| **字符串提取** | 二进制正则扫描 | 提取 ASCII/Unicode 字符串,匹配密码/URL/电子邮件的模式 |
| **熵值分析** | 香农熵 | 计算 `-Σ p(x) × log₂ p(x)` — 标记 >7.5(加壳)或 >7.8(加密) |
| **实时响应** | `netstat`、`platform` | 收集系统信息、网络状态,保存为结构化的 JSON |
### 检测规则(哪些内容会被标记)
| 可疑指标 | 标记原因 |
|----------------------|------------------|
| `powershell.exe` 来自 `C:\Users\*\Temp\` | 脚本引擎从临时文件夹运行 |
| `svchost.exe` 不在 `System32` 中 | 系统进程被重命名/移动 |
| `winword.exe` 生成 `cmd.exe` | 宏执行(网络钓鱼) |
| `Downloads\` 中任何 <100KB 的 `.exe` | 小型 dropper/downloader |
| 注册表 Run 键指向 `AppData\Local\Temp\` | 从临时文件夹进行持久化 |
| 熵值 >7.5 | 已加壳/加密(可能是恶意软件) |
| 字符串包含 `password=` 或 `apikey=` | 硬编码的凭证 |
## 📋 使用方法
### 1️⃣ **以管理员身份运行**(必需)
```
# 右键点击 PowerShell → “以管理员身份运行”
cd C:\path\to\mem-walker
python mem-walker.py --help
```
### 2️⃣ **命令**
| 命令 | 功能 | 使用时机 |
|---------|--------------|-------------|
| `--full` | **全面调查** — 运行全部 8 个模块 | 首次响应、完整的系统分析 |
| `--scan` | **仅进程扫描** — 列出进程,标记可疑进程 | 快速检查、威胁狩猎 |
| `--scan-files` | **仅磁盘扫描** — 查找可疑可执行文件 | 猎取恶意软件 dropper |
| `--strings ` | **字符串提取** — 从任何文件中提取可读文本 | 提取配置、密码、标志 |
| `--entropy ` | **熵值分析** — 检测加壳/加密内容 | 识别混淆的恶意软件 |
| `--output ` | **自定义输出文件夹** | 组织多个案件 |
### 3️⃣ **示例**
```
# 在可疑机器上进行全面调查
python mem-walker.py --full
# 将结果保存到外部驱动器以供日后分析
python mem-walker.py --full --output D:\forensics\case_20260115
# 快速进程检查(最快的扫描)
python mem-walker.py --scan
# 从未知 binary 中提取 strings
python mem-walker.py --strings C:\Users\user\Desktop\suspicious.exe
# 检查文件是否已加壳/加密
python mem-walker.py --entropy C:\Windows\Temp\installer.exe
# 仅扫描磁盘(无进程,无注册表)
python mem-walker.py --scan-files
```
### 4️⃣ **您将看到的内容**
**控制台输出:**
```
[*] Forensic Knife v3.0 - Running on Windows 11
======================================================================
MEMORY FORENSICS - Process Analysis
======================================================================
PID PPID Name
--------------------------------------------------
2136 0 TouchpointAnalyticsClientService.exe
4567 1234 powershell.exe
[WARNING] Suspicious file: C:\Users\HP\AppData\Local\Temp\setup.exe
======================================================================
REPORT SUMMARY
======================================================================
Total Findings: 106
Critical: 0
Suspicious: 3
Warning: 103
======================================================================
[✓] Investigation complete. Output: forensic_export_20260115_143022/
```
**输出文件:**
```
forensic_export_20260115_143022/
├── artifacts/
│ ├── system_info.json # OS, hostname, architecture
│ ├── processes.json # All running processes
│ └── network.txt # netstat -an output
├── forensic_report.json # Complete findings with severity
├── timeline.csv # Event timeline (Excel-friendly)
└── timeline.html # Interactive HTML visualization
```
### 5️⃣ **理解颜色含义**
| 颜色 | 含义 | 操作 |
|-------|---------|--------|
| 🔵 蓝色 | 信息性 — 正常 | 无需操作 |
| 🟡 黄色 | 警告 — 需调查 | 检查文件/进程详情 |
| 🟣 紫色 | 可疑 — 高置信度 | 立即调查 |
| 🔴 红色 | 严重 — 检测到威胁 | 遏制并响应 |
### 6️⃣ **常见工作流**
**事件响应(10 分钟分类评估):**
```
python mem-walker.py --full --output C:\cases\incident_$(Get-Date -Format yyyyMMdd)
start forensic_export_*/timeline.html
```
**恶意软件分析:**
```
python mem-walker.py --strings malware.exe
python mem-walker.py --entropy malware.exe
```
**每周威胁狩猎:**
```
python mem-walker.py --scan
python mem-walker.py --scan-files
```
## ⚠️ 要求
| 要求 | 详情 |
|-------------|--------|
| **操作系统** | Windows 10 或 11 |
| **Python** | 3.8+([python.org](https://python.org)) |
| **权限** | **管理员**(右键点击 PowerShell → 以管理员身份运行) |
| **磁盘空间** | 工具和报告约需 10 MB |
**为什么需要管理员权限:**
- 读取所有正在运行的进程(包括系统进程)
- 访问 Windows 注册表持久化键
- 扫描受保护的用户目录
- 捕获完整的网络连接数据
### 无需依赖项 — 纯 Python 标准库。
标签:DAST, JARM, 内存分析, 库, 应急响应, 恶意软件分析, 数字取证, 注册表分析, 端点可见性, 自动化脚本, 逆向工具