7.6 KiB
7.6 KiB
MemScan-EDR
开源、轻量化、内存专项的 Windows 终端威胁检测与响应 (EDR) 工具
MemScan-EDR 扫描所有运行中的进程,检查内存中的 Shellcode / 注入 / C2 特征,并利用 AI(OpenAI / Claude / 本地模型)实时分类威胁。基于 C# WPF 构建,通过 dotnet publish 打包为单个 .exe,无需目标机器安装 .NET 运行时。
待办事项
| 优先级 | 状态 | 任务 | 负责人 | 备注 |
|---|---|---|---|---|
| 🔴 高 | ⬜ 未开始 | YARA 规则文件加载与匹配引擎 | rules/*.yar 文件解析 |
|
| 🔴 高 | ⬜ 未开始 | 网络连接 PID 关联(TCP 连接→进程) | GetConnectionPid() 实现 |
|
| 🔴 高 | ⬜ 未开始 | 内存 Dump 与 PE 结构解析 | 可疑进程内存导出 | |
| 🟡 中 | ⬜ 未开始 | 审计日志持久化(JSON/SQLite) | 扫描历史记录查询 | |
| 🟡 中 | ⬜ 未开始 | PDF/HTML 报告导出 | Dashboard → 一键导出 | |
| 🟡 中 | ⬜ 未开始 | 定时扫描调度(每天/每小时) | 后台定时任务 | |
| 🟡 中 | ⬜ 未开始 | 进程自动终止(一键处置高危进程) | TerminateProcess P/Invoke |
|
| 🟡 中 | ⬜ 未开始 | 隐藏进程检测(EPROCESS 链表遍历) | CE-MCP 内核级 | |
| 🟢 低 | ⬜ 未开始 | 系统托盘最小化 | NotifyIcon + 后台运行 | |
| 🟢 低 | ⬜ 未开始 | 自定义签名规则编辑器 | GUI 内编辑 YARA/签名 | |
| 🟢 低 | ⬜ 未开始 | 暗色主题切换 | 白色/暗色双主题 | |
| ✅ 完成 | ✅ 已完成 | 多 AI 提供商 + 预过滤 + 防误报 Prompt | v1.2 | |
| ✅ 完成 | ✅ 已完成 | CE-MCP 自动启动子进程管理 | v1.1 | |
| ✅ 完成 | ✅ 已完成 | 中英文界面一键切换 | v1.1 | |
| ✅ 完成 | ✅ 已完成 | 12 条内置内存签名检测 | v1.0 | |
| ✅ 完成 | ✅ 已完成 | WPF 白色主题现代化界面 | v1.0 |
功能特性
核心能力
| 能力 | 描述 |
|---|---|
| 进程全量采集 | PID、进程名、路径、父进程树、启动命令行、数字签名、线程数、内存用量 |
| 内存扫描 | VirtualQueryEx 遍历每个已提交内存区域;检测 RWX 私有内存、未映射可执行页 |
| 签名匹配 | 12 条内置检测规则:NOP sled、CALL/POP EIP、ROR13 hash、CobaltStrike Beacon、Meterpreter、ReflectiveLoader、Mimikatz 等 |
| AI 威胁分类 | 多提供商支持(OpenAI 兼容 / Claude / Ollama / LM Studio)+ 启发式规则降级引擎 |
| CE-MCP 集成 | 自动启动 Cheat Engine MCP 服务器,提供内核级内存操作能力 |
| 中英文界面切换 | 一键切换全部标签、按钮、告警文本 |
| 单文件 EXE | dotnet publish 生成自包含 MemScan-EDR.exe,目标机器无需 .NET 运行时 |
AI 提供商
| 提供商 | 描述 | Base URL 示例 |
|---|---|---|
| OpenAI 兼容 | OpenAI / DeepSeek / 通义千问 / 智谱 等 | https://api.openai.com/v1 |
| Claude | Anthropic Claude Messages API | https://api.anthropic.com |
| 本地模型 | Ollama / LM Studio / vLLM / llama.cpp | http://127.0.0.1:11434 |
| 启发式规则 | 内置规则引擎,无需 API Key | N/A |
内置签名
| 签名 | 类别 | 严重性 |
|---|---|---|
SHELLCODE_NOP_SLED |
Shellcode | 中 |
SHELLCODE_GETEIP |
Shellcode | 中 |
SHELLCODE_ROR13 |
Shellcode | 中 |
C2_COBALTSTRIKE |
C2 | 高 |
C2_METERPRETER |
C2 | 中 |
INJECTION_REFLECTIVE |
注入 | 高 |
INJECTION_CRT |
注入 | 中 |
INJECTION_VAE |
注入 | 中 |
MALWARE_MIMIKATZ |
恶意软件 | 高 |
CRYPTO_MINER |
挖矿 | 高 |
RANSOM_NOTE |
恶意软件 | 高 |
PS_DOWNLOAD |
恶意软件 | 中 |
架构
TitleBar ── 窗口控制(最小化/最大化/关闭,语言切换)
Sidebar ── 导航(仪表盘 / 进程 / 扫描 / 设置)
Content ── 4 个视图(WPF Grid Visibility 切换)
服务层:
ProcessCollector ── CreateToolhelp32Snapshot + WMI → ProcessInfo[]
MemoryScanner ── VirtualQueryEx + 签名遍历 → SignatureMatch[]
AIAnalyzer ── HTTP → OpenAI/Claude/Ollama → ScanResult
CeMcpManager ── Process.Start → python server.py
数据流:
[开始扫描] → ProcessCollector.CollectAll()
→ 每个进程:
→ MemoryScanner.ScanProcess() → 签名匹配
→ MemoryScanner.GetSuspiciousRegions() → RWX 私有区域
→ QuickPreScore() — score < 0.05 跳过 API
→ AIAnalyzer.AnalyzeProcessAsync() → ScanResult
→ IProgress<> 实时更新界面
快速开始
环境要求
- Windows 10 / 11 (x64)
- .NET 8 SDK
- 管理员权限(用于内存扫描)
编译构建
git clone https://github.com/Huang-158/MemScan-EDR.git
cd MemScan-EDR\src-csharp
# Debug 编译
dotnet build MemScanEDR.sln
# 发布单文件 EXE
dotnet publish MemScanEDR\MemScanEDR.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o publish
# 运行
.\publish\MemScan-EDR.exe
或:
.\scripts\build_csharp.bat
CE-MCP 配置(可选)
- 将 ce-mcp-server 放在项目同级目录
- 或在设置界面 → CE-MCP 服务器路径 配置
- 设为
disabled可跳过 CE-MCP
AI 配置
- 选择提供商:启发式 / OpenAI 兼容 / Claude / 本地
- 填写 API 地址
- 填写 API Key(本地存储)
- 填写模型名称
- 点击保存
AI 分析机制
- 预过滤:无任何可疑特征的进程直接标记为
安全,不调用 API - 结构化 Prompt:每个进程生成含元数据、网络连接、内存签名、可疑区域的格式化报告
- 默认安全策略:AI 被指示 >95% 的进程是良性的;需要多个并发指标才提升风险等级
- 启发式降级:API 不可用时采用保守阈值(≥0.50 可疑,≥0.75 高危)
项目结构
MemScan-EDR/
├── src-csharp/
│ ├── MemScanEDR.sln
│ └── MemScanEDR/
│ ├── MemScanEDR.csproj
│ ├── App.xaml / App.xaml.cs
│ ├── MainWindow.xaml / MainWindow.xaml.cs
│ ├── Models/
│ │ ├── ProcessInfo.cs
│ │ ├── AIConfig.cs
│ │ └── AppSettings.cs
│ └── Services/
│ ├── ProcessCollector.cs
│ ├── MemoryScanner.cs
│ ├── AIAnalyzer.cs
│ └── CeMcpManager.cs
├── rules/
│ ├── shellcode.yar
│ ├── injection.yar
│ └── malware_strings.yar
├── scripts/
│ └── build_csharp.bat
├── LICENSE
├── README.md # 语言切换入口
├── README_CN.md # 中文文档(当前)
└── README_EN.md # English docs
声明
本项目与 Cheat Engine、其原作者 Dark Byte 以及任何 AI 提供商(OpenAI、Anthropic 等)无任何关联。
本工具仅用于合法的安全研究、教育及授权的安全评估。未经授权对非自有或未被许可的系统使用属违法行为。使用者须遵守当地法律法规并自行承担所有风险。
许可证
MIT License — 详见 LICENSE。