MemScan-EDR/README.md

205 lines
6.8 KiB
Markdown
Raw Normal View History

<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)。