MemScan-EDR/README.md

205 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div align="right">
[![English](https://img.shields.io/badge/English-README_EN.md-blue?style=flat-square&logo=markdown)](README_EN.md)
</div>
# MemScan-EDR
> **开源、轻量化、内存专项的 Windows 终端威胁检测与响应 (EDR) 工具**
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![.NET 8](https://img.shields.io/badge/.NET-8.0-purple.svg)](https://dotnet.microsoft.com/)
[![Platform: Windows](https://img.shields.io/badge/Platform-Windows%2010%2F11-lightgrey.svg)](https://www.microsoft.com/windows)
[![CS-WPF](https://img.shields.io/badge/UI-WPF-green.svg)](https://github.com/dotnet/wpf)
MemScan-EDR 扫描所有运行中的进程,检查内存中的 Shellcode / 注入 / C2 特征,并利用 AIOpenAI / Claude / 本地模型)实时分类威胁。基于 C# WPF 构建,通过 `dotnet publish` 打包为单个 `.exe`,无需目标机器安装 .NET 运行时。
---
## 待办事项
- [ ] 1. YARA 规则文件加载与匹配引擎
- [ ] 2. 网络连接 PID 关联TCP 连接→进程)
- [ ] 3. 内存 Dump 与 PE 结构解析
- [ ] 4. 审计日志持久化
- [ ] 5. 报告导出PDF / HTML
- [ ] 6. 定时扫描调度
- [ ] 7. 高危进程一键终止
- [ ] 8. 隐藏进程检测EPROCESS 链表)
- [x] 9. 多 AI 提供商 + 防误报v1.2
- [x] 10. CE-MCP 自动启动v1.1
- [x] 11. 中英文界面切换v1.1
- [x] 12. 12 条内置内存签名v1.0
- [x] 13. 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](https://dotnet.microsoft.com/download/dotnet/8.0)
- 管理员权限(用于内存扫描)
### 编译构建
```powershell
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
```
或:
```powershell
.\scripts\build_csharp.bat
```
### CE-MCP 配置(可选)
1. 将 [ce-mcp-server](https://github.com/Huang-158/ce-mcp-server) 放在项目同级目录
2. 或在设置界面 → CE-MCP 服务器路径 配置
3. 设为 `disabled` 可跳过 CE-MCP
### AI 配置
1. 选择提供商:启发式 / OpenAI 兼容 / Claude / 本地
2. 填写 API 地址
3. 填写 API Key本地存储
4. 填写模型名称
5. 点击保存
---
## AI 分析机制
1. **预过滤**:无任何可疑特征的进程直接标记为`安全`,不调用 API
2. **结构化 Prompt**:每个进程生成含元数据、网络连接、内存签名、可疑区域的格式化报告
3. **默认安全策略**AI 被指示 >95% 的进程是良性的;需要多个并发指标才提升风险等级
4. **启发式降级**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_EN.md # English docs
```
---
## 声明
> 本项目与 Cheat Engine、其原作者 Dark Byte 以及任何 AI 提供商OpenAI、Anthropic 等)无任何关联。
>
> 本工具仅用于**合法的安全研究、教育及授权的安全评估**。未经授权对非自有或未被许可的系统使用属违法行为。使用者须遵守当地法律法规并自行承担所有风险。
---
## 许可证
MIT License — 详见 [LICENSE](LICENSE)。