基于 rabume/cs2-dma-radar 使用 Rust + memflow 重构的 CS2 内存雷达(Web 界面)。
通过 memflow 直接读取虚拟机内 cs2.exe 的内存,将玩家位置、血量、朝向实时推送到浏览器端的 Leaflet 地图上显示。
- 实时显示玩家位置 / 血量 / 朝向(WebSocket + STOMP 协议推送)
- 敌我识别:敌人与队友分色显示,支持队友颜色区分
- 双层地图自动切换(nuke / vertigo 的下层)
- 地图边界在线微调(自动保存到浏览器 localStorage)
- 支持 10 张地图:
| 地图 | 中文名 | 备注 |
|---|---|---|
| de_ancient | 远古遗迹 | |
| de_anubis | 阿努比斯 | |
| de_cache | 叉车 | |
| de_dust2 | 沙漠 2 | |
| de_inferno | 炼狱小镇 | |
| de_mirage | 荒漠迷城 | |
| de_nuke | 核子危机 | 含下层 de_nuke_lower |
| de_overpass | 死亡游乐园 | |
| de_train | 列车停放站 | |
| de_vertigo | 殒命大厦 | 含下层 de_vertigo_lower |
- 宿主机:Debian 13+(memflow KVM 内核模块已安装)
- 虚拟机:QEMU/KVM 运行 Windows 10(运行 CS2)
- 浏览器:同一局域网内任意设备访问
http://<宿主机IP>:8080
cd cs2-memflow-radar
cargo build --releasecd cs2-memflow-radar/client
npm install
npm run build需要 Node.js ≥ 20.19(推荐 22+),可用 nvm 管理版本
- 启动虚拟机,进入 CS2 对局
- 启动雷达(KVM 连接器,内核模块 memflow.ko 已安装):
cd cs2-memflow-radar
./target/release/cs2_radar -c kvm -o win32QEMU 连接器备选:
-c qemu,若出现"无法找到 DTB"报错请改用 KVM 连接器。
- 同一局域网设备浏览器访问
http://<宿主机IP>:8080
雷达的所有偏移在 offsets.json 中(运行时读取,无需重新编译)。CS2 更新后使用 CS2-Dumper 重新 dump 并对照更新:
| offsets.json 字段 | 来源(dump 输出) |
|---|---|
| dwLocalPlayerPawn / dwEntityList / dwGlobalVars / dwGameTypes | offsets.json(十进制转十六进制) |
| m_iHealth / m_lifeState / m_iTeamNum | client_dll.json → C_BaseEntity 类 |
| m_vOldOrigin | client_dll.json → C_BasePlayerPawn 类 |
| m_angEyeAngles | client_dll.json → C_CSPlayerPawn 类 |
| m_hPlayerPawn / m_iPawnArmor / m_iCompTeammateColor | client_dll.json → CCSPlayerController 类 |
修改 offsets.json 后重启雷达进程即可。
本项目基于 rabume/cs2-dma-radar 重构,感谢原作者的开源工作!
同时感谢 [xing-fan-weiai] 对本项目的更新和维护,适配了 CS2 最新版本,并修复了阿努比斯地图显示bug。 --2026年8月9日
本项目仅供学习研究,严禁用于 CS2 官方匹配!使用后果由用户自行承担!