ZxPwdz/CrxMem
GitHub: ZxPwdz/CrxMem
CrxMem 是一个开源的 Windows 内存扫描与调试套件,提供进程内存搜索、反汇编、内核驱动辅助等逆向研究能力。
Stars: 5 | Forks: 1
# CrxMem
**由 ZxPwd 创建**
**Discord: zxpwd**
CrxMem 是一个受 Cheat Engine 启发的 Windows 内存扫描与分析项目。该仓库现在包含重新设计的紧凑型 WPF 主应用程序、较新的 WPF Memory View、保留的旧版 Memory Viewer、Auto Assembler 相关工作、书签工具、Watchdog Hunter 研究工具以及可选的内核驱动实验。


## 项目状态
该项目已经远远超越了一个基础扫描器。当前的构建版本包括重新设计的主 UI、两条 Memory View 路径、书签基础架构、Auto Assembler 相关工作以及可选的驱动辅助功能,但并非所有高级调试功能都已完全完成。
### 当前功能状态
| 区域 | 状态 | 备注 |
|------|--------|-------|
| **扫描器 / 地址列表** | 可用,预发布版 | 精确/比较扫描、撤销、过滤器、可写区域扫描以及地址列表工作流是活跃 WPF shell 的一部分 |
| **主 WPF shell** | 可用,预发布版 | 紧凑的深蓝色重新设计,包含进程状态、扫描工作区、表工作流和设置集成 |
| **Memory View (WPF)** | 可用,预发布版 | 反汇编、十六进制转储、导航、模块、内存映射、补丁面板、Auto Assembler 入口点和书签管理器 |
| **Memory Viewer (Legacy)** | 可用,已保留 | 以前的 WinForms/GDI+ 查看器仍可作为备用和比较路径使用 |
| **书签 / 注释** | 可用,不断完善中 | 停靠书签管理器、注释持久化、编辑/移动/重新绑定/导入/导出路径 |
| **Auto Assembler** | 实验性 | UI 和事务性脚本基础架构已具备,但兼容性仍不完善 |
| **调试器 / 断点** | 原型 | 存在附加/运行控制/单步执行工作,但这尚未成为一个功能完全对等的附加调试器 |
| **Watchdog Hunter** | 实验性研究工具 | 用于独立研究用途的线程普查和完整性线程搜寻工作流 |
| **Lua 引擎** | 不完整 | 核心部分已存在;完整的兼容性层面仍在开发中 |
| **CrxShield 驱动路径** | 实验性 | 可选的内核辅助操作和工具,不受托管 CI 构建覆盖 |
### 重要提示
- `Tools > Memory View (WPF)` 打开较新的 Memory View 工作区。
- `Tools > Memory Viewer (Legacy)` 打开保留的旧版查看器。
- 旧版查看器仍被刻意保留,因为在较新的 Memory View 功能继续完善期间,它依然很有用。
- 内核和反作弊研究功能应视为隔离实验室功能,而非日常安全的默认设置。
## 仓库结构
该仓库现在包含主应用程序以及几个实验性配套项目和研究文件夹:
```
CrxMem/
|-- CrxMem/ # Main C# application (WPF shell + legacy WinForms components)
|-- CrxMem.Tests/ # Managed test suite
|-- CrxShield/ # Experimental kernel driver
|-- CrxShieldClient/ # Driver client/native interop work
|-- VEHDebugDll/ # VEH-based debugging experiments
|-- FxpStrip/ # Native anti-cheat / hook research work
|-- GunzAnalysis/ # Analysis notes, scripts, and research artifacts
`-- Documentation/ # Plans, design references, and implementation notes
```
| 项目 | 描述 | 语言 |
|---------|-------------|----------|
| **CrxMem** | 用于扫描、编辑、分析、Memory View 和表工作流的主 GUI 应用程序 | C# (.NET 8) |
| **CrxShield** | 用于内核辅助内存访问和线程工具的实验性 Windows 内核驱动程序 | C / WDK |
| **CrxShieldClient** | 客户端驱动程序访问助手和原生互操作 | C++ / C# |
| **VEHDebugDll** | 基于 VEH 的调试和断点实验 | C++ |
| **FxpStrip** | 原生逆向工程和反作弊研究项目 | C++ |
| **GunzAnalysis** | 笔记、脚本和逆向工程产物 | 混合 |
## CrxMem 主应用程序
主应用程序现在使用深色主题的 WPF shell,采用紧凑的扫描器优先布局,同时在仍有用的地方保留选定的旧版组件。
### 主 UI 亮点
- 为较小屏幕优化的紧凑型重新设计主窗口
- 具有运行时进程状态的进程感知标头
- 虚拟化 WPF DataGrid 中的扫描结果和地址列表
- 内置对 Memory View、Legacy Memory Viewer、Lua、PE 分析、Watchdog Hunter 和设置的访问
- 持久化布局和设置迁移支持
### 扫描器和表功能
- 精确、增加、减少、已更改、未更改、未知、介于之间和 AOB 扫描工作流
- 值类型包括 Byte、2/4/8 Bytes、Float、Double、String 和 AOB
- 地址列表编辑、冻结、保存/加载和手动地址输入
- 版本化的 `.crxct` 表格式,支持旧版 CrxMem `.ct` JSON 导入
### 内存分析功能
- **Memory View (WPF)**:
- 反汇编视图
- 十六进制转储
- 堆栈/监视/断点/调用堆栈/内存映射/模块/线程面板
- 补丁编辑器
- Auto Assembler 入口点
- 书签管理器工作区
- **Memory Viewer (Legacy)**:
- 保留的 WinForms/GDI+ 路径
- 在进行 WPF 调试器和 Memory View 开发期间有用的备用方案
### 研究和高级工具
- 带有管理工作流的书签/注释标注
- Auto Assembler 编辑器和预览流水线
- PE 分析
- Lua 集成工作
- Watchdog Hunter 线程分析工作流
- 在连接并启用 CrxShield 时支持感知驱动的内存操作
### 技术栈
- .NET 8.0
- WPF 和 WinForms
- [Iced](https://github.com/icedland/iced) 用于 x86/x64 反汇编
- [NLua](https://github.com/NLua/NLua) 用于 Lua 集成工作
- [ReaLTaiizor](https://github.com/Developer-Flavor/ReaLTaiizor) 用于选定的 UI 控件
## CrxShield
CrxShield 是仓库中的实验性内核驱动程序分支,适用于需要内核辅助内存访问或线程工具的研究版本。
### 当前的驱动程序相关工作
- 内核级读/写支持
- 进程基址检索
- 研究工具使用的线程枚举支持
- 驱动程序管理和重启工具
- `CrxShield/Tools` 下的验证助手和安装脚本
### 驱动程序警告
内核驱动程序可能导致系统不稳定、启动失败或 BSOD。仅在隔离系统或一次性环境中进行测试。
## VEHDebugDll
`VEHDebugDll` 包含向量化异常处理程序调试实验,用于断点和访问监控研究。
### 包括
- 硬件断点实验
- 内存访问监控
- 共享内存 IPC 概念
- 无锁/事件驱动调试实验
## 构建
### 托管解决方案
```
git clone https://github.com/ZxPwdz/CrxMem.git
cd CrxMem
dotnet restore CrxMem.sln
dotnet build CrxMem.sln -c Release --no-restore
```
托管输出:
```
CrxMem\bin\Release\net8.0-windows\
```
克隆公共仓库无需身份验证。贡献者在推送时应使用 Git Credential Manager、GitHub CLI 浏览器登录或 SSH。切勿将 token 放在命令、远程 URL、脚本或提交的文件中。
### CrxShield 驱动程序
1. 安装 Windows Driver Kit。
2. 在 Visual Studio 2022 中打开 `CrxShield/CrxShield.vcxproj` 或解决方案。
3. 在 Release 模式下构建驱动程序。
4. 如果使用测试签名构建,请在加载驱动程序之前启用测试签名并重新启动。
### VEHDebugDll
在您要测试的匹配体系结构中构建 Visual Studio 项目。
## 安装
### 主应用程序
1. 构建或下载 Release 版本。
2. 打开 `CrxMem\bin\Release\net8.0-windows\`。
3. 运行 `CrxMem.exe`。
### 设置存储
CrxMem 将版本化设置存储在:
```
%LocalAppData%\CrxMem\settings.json
```
旧版基于注册表的设置会在首次运行时(如果合适)导入。无效的 JSON 将作为带有时间戳的恢复文件保留,并替换为安全的默认值。
### 可选驱动程序设置
驱动程序管理助手位于:
```
CrxShield\Tools\
```
请使用这些脚本和命令,而不要随意发明自定义安装流程。
## 基本用法
### 扫描器工作流
1. 使用 `File > Open Process`。
2. 输入要搜索的值。
3. 选择扫描类型和值类型。
4. 运行 `First Scan`。
5. 更改目标中的值。
6. 运行 `Next Scan`,直到结果集足够小。
7. 将匹配的行添加到地址列表。
### Memory View 路径
- 从主窗口使用 `Memory View` 以获取较新的 WPF 路径。
- 如果您想要旧版保留的查看器,请使用 `Tools > Memory Viewer (Legacy)`。
### 书签工作流
- 在 WPF Memory View 中,使用 `Ctrl+D` 切换选定指令上的书签。
- 使用 `;` 编辑注释/书签元数据。
- 使用 `Ctrl+Shift+B` 或工作区按钮打开书签管理器。
## 项目详情
### CrxMem 结构
```
CrxMem/
|-- Core/ # Scanning, process access, driver-aware services
|-- MemoryView/ # Legacy viewer + WPF Memory View implementation
|-- MemoryView/Wpf/ # Newer Memory View views, services, and themes
|-- Legacy/ # Retained legacy shell/reference pieces
|-- LuaScripting/ # Lua integration work
|-- Themes/ # MainWindow theme resources
|-- MainWindow.xaml # Main compact WPF shell
|-- SettingsWindow.xaml # Settings UI including CrxShield tooling
`-- WatchdogHunterWindow.xaml # Watchdog Hunter research tool
```
### 文档
- `Documentation/DesignReferences/` 存放捕获的视觉参考。
- `Documentation/Plans/` 存放里程碑和重新设计计划。
- 诸如 `GunzAnalysis/` 和 `FxpStrip/` 等配套文件夹包含更深入的研究笔记和实验。
## 免责声明
**本软件仅供教育和安全研究目的使用。**
- 请勿用于恶意目的。
- 请勿用于攻击在线游戏或第三方服务。
- 将内核和反作弊功能视为独立的研究工具。
- 始终在您可以恢复的系统上测试高风险功能。
## 许可证
根据 [MIT 许可证](LICENSE) 授权。
标签:API接口, Findomain, WPF, 内存扫描, 内核驱动, 游戏工具, 网络协议, 逆向分析