miyakejima/black-desert-client-research

GitHub: miyakejima/black-desert-client-research

针对《黑色沙漠》x64 客户端的逆向工程研究存档,提供 FOV 解锁、超级采样、角色透视和采集 ESP 等运行时功能的源码、偏移图谱与技术文档。

Stars: 0 | Forks: 0

# Black Desert — 客户端研究存档 **涵盖 Black Desert 客户端的 FOV 解锁、渲染缩放超级采样、角色透视和采集 ESP 等 runtime 功能的研究。包含源代码、技术文档以及完整的偏移图谱。** [![Type](https://img.shields.io/badge/type-Client%20Research-blue?style=flat-square)](.) [![Target](https://img.shields.io/badge/target-Black%20Desert%20(x64)-informational?style=flat-square)](.) [![Lua Files](https://img.shields.io/badge/Lua%20archive-3%2C054%20files-brightgreen?style=flat-square)](.) [![Status](https://img.shields.io/badge/supersampling-up%20to%20400%25-brightgreen?style=flat-square)](.)
## 概述 本存档记录了针对 Black Desert x64 客户端的 runtime 功能研究。每个功能均从基本原理出发进行开发:通过静态分析和动态内存探测定位引擎地址,使用安全防护验证写入操作,并构建能够通过显式的恢复工作流在游戏更新后继续使用的工具。 研究涵盖四个独立领域: | 领域 | 状态 | 文档 | |---|---|---| | FOV 解锁 | ✅ 正常工作 | [FOV\_UNLOCK\_DOCUMENTATION.md](docs/FOV_UNLOCK_DOCUMENTATION.md) | | 渲染缩放超级采样 (最高 400%) | ✅ 正常工作 | [RENDER\_SCALE\_DOCUMENTATION.md](docs/RENDER_SCALE_DOCUMENTATION.md) | | 角色透视 (玩家/NPC 轮廓) | ✅ 正常工作 | [ACTOR\_CHAMS\_WORKING\_PROOF\_AND\_CRASH\_RECORD\_2026-07-22.md](docs/ACTOR_CHAMS_WORKING_PROOF_AND_CRASH_RECORD_2026-07-22.md) | | 采集资源 ESP | ✅ 正常工作 | [ESP\_CURRENT\_STATE.md](docs/ESP_CURRENT_STATE.md) | ## 截图 ### 角色透视 通过 hook 材质通道,在所有玩家角色和 NPC 上渲染粉色/洋红色轮廓。每个实体上覆盖显示血条。runtime 控制面板提供了按类型的角色过滤(玩家、NPC、动物、坐骑、物体)、每个角色类独立的可见/遮挡颜色、渲染距离以及实时的后端状态。 ![角色透视 — Velia 中所有角色的粉色轮廓](https://raw.githubusercontent.com/miyakejima/black-desert-client-research/main/docs/screenshots/actor_chams.jpg) ![透视控制面板 — 角色过滤器、可见/遮挡颜色配置、实时后端状态 (113 个活跃角色)](https://raw.githubusercontent.com/miyakejima/black-desert-client-research/main/docs/screenshots/chams_control_panel.png) ### 采集资源 ESP 带有彩色边界框和距离标签的实体追踪覆盖层。扩展的实体绘制范围,超出了客户端默认的剔除距离。 ![ESP 实体追踪 — Velia 广角视图](https://raw.githubusercontent.com/miyakejima/black-desert-client-research/main/docs/screenshots/esp_entity_tracking_wide.jpg) ![ESP 实体追踪 — 扩展范围视图](https://raw.githubusercontent.com/miyakejima/black-desert-client-research/main/docs/screenshots/esp_entity_tracking_extended.jpg) ### 超级采样 — 1080p 输出下约 337% 内部 3D 世界以 1080p 输出分辨率的大约 337% 进行渲染。UI 和输出保持原始的 1920×1080,而世界几何和纹理则以约 3427×1928 进行计算。下面屋顶瓦片的几何细节在原始分辨率下是无法分辨出来的。 ![超级采样约 337% — 基础 1080p 输出下的屋顶瓦片细节](https://raw.githubusercontent.com/miyakejima/black-desert-client-research/main/docs/screenshots/supersampling_337pct.jpg) ## 工具和 Runtime 组件 ### `FOV_Tool.pyw` — 主应用程序 主要工具。在单个紧凑的窗口中处理 FOV 控制、渲染缩放超级采样以及更新恢复。 **安全模型:** 该工具在每次写入前,根据当前的游戏模块基址和已确认的 RVA 计算出两个地址。这两个地址必须是可读的、包含匹配的值,并且落在合理的范围内——否则将拒绝写入。游戏更新移动了地址会导致工具安全地失败,而不是盲目写入。 ``` RVA 1: 0x4514C78 RVA 2: 0x657CDEC ``` **自检:** ``` python FOV_Tool.pyw --self-test ``` 预期结果:`PASS: Python, helper/render-scale integrity, and configured RVAs are valid.` ### `tools/syscfg_mon.exe` — 连接辅助程序 成功的游戏连接路径所需的精确哈希验证辅助二进制文件。隐藏运行;不显示控制台窗口。在 runtime 需要与 `FOV_Tool.pyw` 一起使用。 ### `supersampling_backend/` — 渲染缩放后端 由 FOV 工具连接到游戏进程后直接加载的原生 C++ DLL (`supersampling_backend_v5.dll`)。具有非活跃状态的 `DllMain` 以及显式的 `initialize`/`shutdown` 导出。它不是代理 DLL,也不放在游戏目录中。 源码形式包含了五个版本化的构建 (`v1`–`v5`)。C++ 源码位于 `supersampling_backend/src/` 中。 ### `actor_chams/` — 透视实现 原生 C++ 角色轮廓实现。Hook 到材质/渲染通道,在角色实体上绘制彩色轮廓。包含源码和 MinHook 依赖项。 → 验证、崩溃记录和确切工作状态:[ACTOR\_CHAMS\_WORKING\_PROOF\_AND\_CRASH\_RECORD\_2026-07-22.md](docs/ACTOR_CHAMS_WORKING_PROOF_AND_CRASH_RECORD_2026-07-22.md) ### `skeleton_esp/`、`outline_probe/`、`graphics_backend/` — ESP 子系统 - `skeleton_esp/` — 用于 ESP 覆盖层的基于骨架的实体位置追踪。 - `outline_probe/` — 用于透视系统的轮廓通道检测和 hook。 - `graphics_backend/` — 透视和 ESP 共享的 D3D11 后端实用程序。 ### `tools/` — 分析与桥接脚本 | 脚本 | 用途 | |---|---| | `analyze_chams_bindings.py` | 分析透视 hook 的材质绑定偏移 | | `camera_state_probe.py` | 动态摄像机矩阵和状态读取器 | | `chams_live_inspector.py` | Runtime 透视 hook 检查器 | | `live_image_dump.py` | 转储动态解包后的游戏镜像以进行静态分析 | | `load_fov_dump_bridge.py` | 将 FOV 工具桥接到转储的镜像以进行偏移关联 | | `manage_esp_slot.py` | 用于实体追踪的 ESP 插槽管理器 | | `paz_patcher.py` | 用于 Lua 内容提取的 PAZ 归档读取器/补丁工具 | | `rebuild_live_image.py` | 从动态内存段转储重建连贯的 PE 文件 | | `retained_connection.py` | 管理持久的游戏进程连接状态 | | `esp_payload.lua` | 通过游戏脚本 runtime 注入的 Lua 端 ESP 负载 | ## 文档 | 文档 | 内容 | |---|---| | [FOV\_UNLOCK\_DOCUMENTATION.md](docs/FOV_UNLOCK_DOCUMENTATION.md) | 已验证的引擎 RVA、写入安全防护、更新恢复工作流 | | [RENDER\_SCALE\_DOCUMENTATION.md](docs/RENDER_SCALE_DOCUMENTATION.md) | 引擎渲染缩放位置、VRAM 预检、动态测试清单 | | [ESP\_CURRENT\_STATE.md](docs/ESP_CURRENT_STATE.md) | 当前采集 ESP 架构、实体追踪、快速角色切换测试 | | [ACTOR\_CHAMS\_WORKING\_PROOF\_AND\_CRASH\_RECORD\_2026-07-22.md](docs/ACTOR_CHAMS_WORKING_PROOF_AND_CRASH_RECORD_2026-07-22.md) | 正常工作的透视验证、崩溃记录、材质 hook 调查 | | [LUA\_TO\_TOOL\_FEATURE\_GUIDE.md](docs/LUA_TO_TOOL_FEATURE_GUIDE.md) | 如何从提取的游戏 Lua 中实现新功能 | | [UNPACKED\_CLIENT\_OFFSET\_ATLAS.md](docs/UNPACKED_CLIENT_OFFSET_ATLAS.md) | 所有已定位引擎地址的主偏移参考 | | [docs/unpacked\_offset\_atlas/](docs/unpacked_offset_atlas/) | 原始偏移数据及辅助表格 | ## 偏移图谱 [UNPACKED\_CLIENT\_OFFSET\_ATLAS.md](docs/UNPACKED_CLIENT_OFFSET_ATLAS.md) 和 `docs/unpacked_offset_atlas/` 目录是所有已定位偏移的权威参考。每个条目包含: - 相对于游戏模块基址的 RVA - 地址是如何被确认的(静态分析、动态探测或两者兼有) - 哪个工具或功能会使用它 - 更新敏感性注释 ## 更新恢复 当游戏补丁移动了已确认的地址时: 1. 在 `FOV_Tool.pyw` 中打开 **Details → Update recovery**。 2. 使用已知的补丁前内部值进行 **Record baseline**。 3. 在游戏中产生一个已知的差值并点击 **Correlate**。 4. 该工具将计算并显示新的候选 RVA。 5. 确认并更新配置的值。 完整流程:[FOV\_UNLOCK\_DOCUMENTATION.md § 更新恢复](docs/FOV_UNLOCK_DOCUMENTATION.md) ## 仓库布局 ``` CTFAnalysis/ ├── FOV_Tool.pyw Main application ├── FOV_LOD_Tool.pyw FOV + LOD variant ├── tools/ Analysis and bridge scripts ├── supersampling_backend/ │ └── src/supersampling_backend.cpp C++ render-scale backend source ├── actor_chams/ Native chams implementation + MinHook ├── skeleton_esp/ Skeleton-based entity tracker ├── outline_probe/ Outline-pass hook ├── graphics_backend/ Shared D3D11 utilities ├── live_dumper/ Live image dump tooling ├── step4_actor_proof/ Actor argument probe evidence ├── known-good/ Known-good binary snapshots ├── config/ Tool configuration └── docs/ ├── screenshots/ Working proof screenshots ├── unpacked_offset_atlas/ Raw offset tables └── *.md Technical documentation ```
*研究与文档存档。仅限静态和被动分析 — 不包含任何服务器端数据包修改。*
标签:C++, rizin, 内存修改, 图形渲染Hook, 数据擦除, 游戏作弊, 游戏逆向, 逆向工具