REF22222

REFramework 完整分析报告

项目地址 : https://github.com/praydog/REFramework
分析日期 : 2026-05-07
报告版本: v3.0 --- 合并版


目录

  1. 项目概览
  2. 社区数据
  3. 技术栈与语言分布
  4. 依赖生态深度解析
  5. 源码架构逐层剖析
  6. [RE Engine SDK 逆向工程分析](#RE Engine SDK 逆向工程分析)
  7. [Hook 技术栈详解](#Hook 技术栈详解)
  8. [Lua 脚本系统深度分析](#Lua 脚本系统深度分析)
  9. [VR 子系统架构](#VR 子系统架构)
  10. 多游戏适配机制
  11. 支持的游戏列表
  12. 构建系统深度解析
  13. 核心功能模块
  14. [Issue 分析与社区健康度](#Issue 分析与社区健康度)
  15. 安全与逆向工程视角
  16. 生态与关联项目
  17. 竞品对比
  18. 改进建议
  19. 总结与评价
  20. 附录:关键文件索引

一、项目概览

项目属性 详情
项目名称 REFramework
作者 praydog (GitHub ID: 2909949)
项目定位 RE Engine 游戏的 Mod 加载器、脚本平台与 VR 支持框架
开源协议 MIT License
创建时间 2019-01-31
最后更新 2026-04-26(最新 commit)
主语言 C++(占 94.3%)
仓库大小 ~53 MB
默认分支 master
官方网站 https://reframework.praydog.com/

REFramework 是 Capcom RE Engine 的通用运行时修改框架 ,通过 DLL 注入 + 函数 Hook + 逆向 SDK,为所有 RE Engine 游戏提供 Mod 加载、Lua 脚本和 VR 支持。灵感来源于 Kanan 项目。

核心价值主张

复制代码
传统 Mod 方式:每款游戏单独逆向 → 每款游戏单独工具 → 社区碎片化
REFramework 方式:统一逆向 RE Engine → 一套框架适配所有游戏 → 生态集中

关键洞察:Capcom 自 RE Engine (2017) 以来,所有主力游戏共用同一引擎底层。REFramework 抓住了这个共性,在引擎层面而非游戏层面进行逆向,实现了「一次开发,多游戏受益」的效果。

用户群体画像

用户类型 使用场景 核心功能
普通玩家 安装 Mod、VR 游玩 Mod 加载、VR 模式
Mod 作者 编写 Lua 脚本修改游戏行为 Lua API、对象浏览器
摄影玩家 自由视角截图/录制 Free Camera、FOV、GUI Hider
速通社区 辅助工具、训练模式 Timescale、脚本自动化
VR 爱好者 在 VR 中体验 3A 大作 6DOF VR、运动控制器

二、社区数据

指标 数值
Stars 5,061
🍴 Forks 544
👀 Watchers 91
🐛 Open Issues 623
📦 最新版本 v1.5.9.1 (2025-03-05)
🔧 Contributors 10+

贡献者排名

排名 用户 贡献次数 角色
1 praydog 1,980 项目创始人 & 核心维护者
2 cursey 138 VR 组件 & 脚本系统联合开发
3 hcdd0304 16 贡献者
4 Strackeror --- 贡献者

致谢名单(README 中提及)

  • SkacikPL --- 手电筒 Mod 原作者
  • cursey --- VR 组件 & 脚本系统联合开发
  • The Hitchhiker & alphaZomega --- 压力测试、脚本创建、建议贡献

发布历史(近期)

版本 发布日期 主要内容
v1.5.9.1 2025-03-05 最新稳定版,包含 DD2/DMC5/MHRISE 等多游戏构建
Nightly 持续更新 开发版,包含最新修复(如 RE9 崩溃修复)

最新提交记录(2026年4月)

日期 提交信息
2026-04-26 LooseTextureLoader: Fix RE9 crash --- 修复 RE9 松散纹理加载崩溃
2026-04-25 cleanup: remove AI slop docs and move scripts to dev/ --- 清理文档,移动构建脚本到 dev/

v1.5.9.1 下载统计(部分资产)

构建 文件大小 下载次数
DD2.zip 5.28 MB 25,599
DMC5.zip 5.24 MB 20,474
MHRISE.zip 5.28 MB 18,919

三、技术栈与语言分布

语言 字节数 占比
C++ 41,888,285 94.30%
C 589,695 1.33%
C# 412,977 0.93%
Lua 192,038 0.43%
Python 118,113 0.27%
CMake 109,554 0.25%
JavaScript 56,078 0.13%
CSS 14,519 0.03%
HTML 4,291 0.01%
Batchfile 2,593 0.01%

分析

  • 核心代码以 C++ 为主(绝对主导),符合游戏引擎级别的性能需求
  • Lua 作为脚本语言,为 Mod 作者提供低门槛的扩展能力
  • C# 可能用于编辑器工具或部分辅助组件
  • Python 用于构建/CI 工具脚本
  • CMake 作为构建系统,支持多目标编译

四、依赖生态深度解析

REFramework 的依赖选择极其精准,每个库都有明确的技术目的:

4.1 第三方依赖全景

依赖库 版本/Commit 用途 技术重要性
asmjit 2a706fd x86/x64 JIT 汇编器 ⭐⭐⭐⭐⭐ 用于运行时代码生成和 Hook 跳板
safetyhook b046e12 (by cursey) 安全的函数 Hook 库 ⭐⭐⭐⭐⭐ 核心 Hook 机制
minhook 内置 轻量级 x86 Hook 库 ⭐⭐⭐⭐ 备用/兼容 Hook 方案
bddisasm 70db095 (Bitdefender) x86 反汇编器 ⭐⭐⭐⭐ 指令长度计算、安全 Hook
kananlib 8c27b65 (by cursey) 游戏修改工具库 ⭐⭐⭐⭐ 内存扫描、模式匹配
OpenXR SDK 458984d (Khronos) VR 标准 API ⭐⭐⭐⭐ VR 子系统核心
OpenVR 内置 (Valve) SteamVR API ⭐⭐⭐ SteamVR 兼容层
DirectXTK f5026eb (Microsoft) DX11 工具包 ⭐⭐⭐ VR 帧合成
DirectXTK12 be5dfc7 (Microsoft) DX12 工具包 ⭐⭐⭐ VR 帧合成
Lua 内置源码 脚本语言 ⭐⭐⭐⭐⭐ 脚本系统核心
sol2 内置 C++/Lua 绑定库 ⭐⭐⭐⭐ 类型安全的 Lua 绑定
ImGui 内置 即时模式 GUI ⭐⭐⭐⭐ 调试界面、Mod 菜单
ImGuizmo 内置 3D Gizmo 控件 ⭐⭐ 对象操控
imnodes 内置 节点编辑器 ⭐⭐ 可视化脚本
spdlog 内置 高性能日志 ⭐⭐⭐ 调试与错误追踪
freetype f1cd6db 字体渲染 ⭐⭐ ImGui 中文/多语言支持
glm 内置 数学库 ⭐⭐⭐ 3D 向量/矩阵运算
nlohmann_json 内置 JSON 解析 ⭐⭐ 配置文件处理

4.2 依赖关系图

复制代码
                    ┌──────────────────────────────────────┐
                    │           REFramework DLL             │
                    │    (各游戏的目标构建: RE2/RE3/DMC5...) │
                    └───────────────┬──────────────────────┘
                                    │
            ┌───────────────────────┼───────────────────────┐
            │                       │                       │
     ┌──────▼──────┐        ┌──────▼──────┐        ┌──────▼──────┐
     │  Hook 层    │        │  脚本层     │        │  VR 层      │
     │             │        │             │        │             │
     │ safetyhook  │        │ Lua (源码)  │        │ OpenXR SDK  │
     │ minhook     │        │ sol2        │        │ OpenVR      │
     │ asmjit      │        │             │        │ DirectXTK   │
     │ bddisasm    │        │             │        │ DirectXTK12 │
     └──────┬──────┘        └──────┬──────┘        └──────┬──────┘
            │                       │                       │
     ┌──────▼──────┐        ┌──────▼──────┐        ┌──────▼──────┐
     │ kananlib    │        │  ImGui      │        │  glm        │
     │ (内存扫描)  │        │ (调试 UI)   │        │ (数学运算)  │
     └─────────────┘        └─────────────┘        └─────────────┘

4.3 关键技术选择评价

✅ 优秀选择

  • safetyhook + asmjit:比传统 minhook 更安全,支持更复杂的 Hook 场景
  • sol2:类型安全的 C++/Lua 绑定,比 raw Lua C API 好用 10 倍
  • bddisasm(Bitdefender 出品):工业级反汇编器,指令长度计算精确
  • 双 D3D Hook:同时支持 DX11 和 DX12,覆盖所有 RE Engine 游戏

⚠️ 潜在风险

  • OpenVR 以预编译 .lib 形式引入:无法从源码审计,且 Valve 已逐步推 OpenXR
  • 多个 Hook 库并存(safetyhook + minhook):增加了维护复杂度
  • Lua 以源码引入:版本更新需要手动同步

五、源码架构逐层剖析

5.1 项目结构总览

复制代码
REFramework/
├── .clang-format          # 代码格式化配置
├── .clang-tidy            # 静态分析配置 (2.4KB 规则集)
├── .github/
│   ├── ISSUE_TEMPLATE/    # Bug 报告 & 功能请求模板
│   └── workflows/
│       ├── build-pr.yml       # PR 构建 CI
│       └── dev-release.yml    # 开发版自动发布
├── CMakeLists.txt         # 主构建文件 (67KB,多目标)
├── CMakePresets.json       # CMake 预设
├── COMPILING.md           # 编译指南
├── LICENSE                # MIT 协议
├── README.md              # 项目说明
├── dev/                   # 开发/CI 工具脚本
├── src/                   # 源代码目录
├── shared/                # 共享库 (SDK + 工具)
├── scripts/               # Lua 脚本示例
├── games/                 # 各游戏适配模块
└── imgui/                 # ImGui 调试界面

5.2 src/ 目录 --- 核心框架

文件 大小 职责
D3D11Hook.cpp/hpp 10KB / 2KB DirectX 11 渲染管线 Hook
D3D12Hook.cpp/hpp 30KB / 4KB DirectX 12 渲染管线 Hook(最复杂的单文件之一)
DInputHook.cpp/hpp 3.6KB / 1.2KB DirectInput Hook(键盘/手柄输入拦截)
DisasmUtils.hpp 2.6KB 反汇编工具函数
ExceptionHandler.cpp/hpp 5.2KB / 0.15KB SEH 异常处理
Genny.hpp --- 代码生成工具

D3D12Hook.cpp(30KB) 是整个项目中最大的单文件之一,原因在于:

  • D3D12 的命令队列模型比 D3D11 复杂得多
  • 需要 Hook PresentExecuteCommandListsResizeBuffers 等多个虚函数
  • VR 合成需要在正确的时机拦截帧缓冲

5.3 shared/ 目录 --- SDK 与工具

复制代码
shared/
├── sdk/                    # RE Engine SDK(逆向工程产物)
│   ├── REType*.cpp/hpp     # 引擎类型系统
│   ├── REGameObject.*      # 游戏对象
│   ├── REManagedObject.*   # 托管对象(RE Engine GC)
│   ├── RETransform.*       # 变换组件(位置/旋转/缩放)
│   ├── REComponent.*       # 组件系统
│   ├── REContext.*         # 执行上下文
│   ├── REDelegate.*        # 委托/事件系统
│   ├── REGlobals.*         # 全局单例
│   ├── RETypeDB.*          # 类型数据库
│   ├── REVTableHook.*      # 虚函数表 Hook
│   ├── ReClass_Internal_*.hpp  # 各游戏的内部类定义
│   ├── MurmurHash.*        # 哈希算法(RE Engine 使用)
│   ├── REArray.*           # 引擎数组类型
│   ├── REString.hpp        # 引擎字符串类型
│   ├── REMath.hpp          # 引擎数学库
│   ├── Application.*       # 应用程序层
│   ├── GameIdentity.*      # 游戏识别
│   ├── GUIPrimitiveSystem.*# GUI 图元系统
│   └── MotionFsm2Layer.*   # 动画状态机
└── utility/
    ├── FunctionHook.*      # 函数 Hook 封装
    ├── FunctionHookMinHook.* # MinHook 封装
    ├── Relocate.*          # 地址重定位
    └── Exceptions.*        # 异常处理

5.4 架构分层

复制代码
┌─────────────────────────────────────────────────────┐
│                    Layer 5: 用户层                    │
│         Lua 脚本 / Mod 配置 / VR 交互界面             │
├─────────────────────────────────────────────────────┤
│                    Layer 4: 功能层                    │
│    FreeCamera / Timescale / FOV / GUI Hider / VR     │
├─────────────────────────────────────────────────────┤
│                    Layer 3: 脚本引擎                  │
│         Lua VM ← sol2 绑定 ← RE SDK 暴露             │
├─────────────────────────────────────────────────────┤
│                    Layer 2: RE Engine SDK             │
│   类型系统 / 对象模型 / 组件系统 / 游戏状态访问         │
├─────────────────────────────────────────────────────┤
│                    Layer 1: Hook 层                   │
│    D3D11 Hook / D3D12 Hook / DInput Hook / VTable    │
├─────────────────────────────────────────────────────┤
│                    Layer 0: 注入层                    │
│              dinput8.dll 代理加载                     │
└─────────────────────────────────────────────────────┘

六、RE Engine SDK 逆向工程分析

这是整个项目技术含量最高的部分。REFramework 对 RE Engine 的内部结构进行了系统性的逆向。

6.1 类型系统逆向

RE Engine 使用自研的反射/类型系统(类似 Unreal 的反射系统),REFramework 对其进行了完整映射:

SDK 类 对应引擎概念 功能
REType / RETypeDB 类型数据库 存储所有引擎类型的元数据
RETypeDefinition 类型定义 单个类型的完整描述
REObjectInfo 对象信息 对象的运行时类型信息
REManagedObject 托管对象 RE Engine GC 管理的对象
REGameObject 游戏对象 场景中的实体
REComponent 组件 ECS 架构中的组件
RETransform 变换 位置/旋转/缩放
REContext 执行上下文 线程/调用上下文
REDelegate 委托 事件/回调系统
REGlobals 全局单例 引擎全局管理器
REVTableHook 虚表 Hook 修改虚函数表实现拦截

6.2 游戏特定类定义

ReClass_Internal_*.hpp 文件是各游戏的内部类逆向定义:

文件 对应游戏 说明
ReClass_Internal_RE2_TDB70.hpp 生化2 (TDB v70) 老版本类型数据库
ReClass_Internal_RE3.hpp 生化3
ReClass_Internal_RE3_TDB70.hpp 生化3 (TDB v70)
ReClass_Internal_RE4.hpp 生化4
ReClass_Internal_RE7.hpp 生化7
ReClass_Internal_RE8.hpp 生化8
ReClass_Internal_RE9.hpp 生化9
ReClass_Internal_DMC5.hpp 鬼泣5
ReClass_Internal_MHWILDS.hpp 怪猎荒野
ReClass_Internal_MHSTORIES3.hpp 怪猎物语3
ReClass_Internal_DD2.hpp 龙之信条2
ReClass_Internal_PRAGMATA.hpp Pragmata 未发售游戏

💡 值得注意ReClass_Internal_PRAGMATA.hpp 表明开发者已经开始逆向尚未发售的 Capcom 游戏 Pragmata。

6.3 关键逆向技术

  • MurmurHash:RE Engine 内部使用 MurmurHash 进行资源/类型名的哈希查找。REFramework 实现了相同的哈希算法来匹配引擎内部的查找逻辑。
  • GameIdentity:用于自动检测当前运行的是哪款 RE Engine 游戏,从而加载对应的游戏特定代码。
  • MotionFsm2Layer:动画状态机的逆向,用于 VR 运动控制器映射角色动画。

七、Hook 技术栈详解

7.1 Hook 库对比

特性 safetyhook minhook
作者 cursey(REFramework 核心贡献者) Tsuda Kageyu
原理 inline hook + 代码复制 inline hook + trampoline
安全性 高(使用 asmjit 重定位指令)
依赖 asmjit, Zydis 内置 HDE
多线程安全 部分
适合场景 复杂 Hook、多级跳转 简单函数 Hook

REFramework 同时使用两套 Hook 库,safetyhook 作为主方案,minhook 作为备用/兼容方案。

7.2 D3D Hook 实现要点

D3D11 Hook(10KB)

  • Hook IDXGISwapChain::Present --- 每帧渲染完成时注入
  • Hook IDXGISwapChain::ResizeBuffers --- 窗口大小改变时处理
  • 在 Present 回调中叠加 ImGui 和 VR 合成

D3D12 Hook(30KB)

  • Hook IDXGISwapChain::Present
  • Hook ID3D12CommandQueue::ExecuteCommandLists
  • 需要管理 D3D12 的描述符堆、命令队列等复杂资源
  • VR 帧合成需要在正确的命令队列时机插入

7.3 VTable Hook

REVTableHook 直接修改 RE Engine 对象的虚函数表指针,实现对引擎内部方法的拦截。这是修改游戏行为最直接的方式。


八、Lua 脚本系统深度分析

8.1 技术栈

复制代码
Lua 5.x (源码编译) ← sol2 (C++ 绑定) ← REFramework SDK 暴露层
  • Lua:以源码形式编译进 DLL,避免版本不一致
  • sol2:业界最优秀的 C++/Lua 绑定库,支持自动类型推导、异常安全
  • 暴露层:将 RE Engine SDK 的 C++ 对象通过 sol2 映射到 Lua

8.2 脚本 API 能力

能力 说明
内存读写 直接读写游戏进程内存
函数调用 调用 RE Engine 的原生函数
对象操作 创建/销毁/修改游戏对象
组件访问 访问游戏对象的任意组件
Hook 注册 注册前置/后置 Hook 回调
ImGui 绘制 在游戏内绘制自定义 UI
输入监听 监听键盘/手柄输入
定时器 延迟/周期执行
HTTP 请求 网络通信能力
JSON 读写 配置文件操作

8.3 脚本示例

lua 复制代码
-- 获取玩家对象
local player = sdk.find_type_definition("app.Player")
local player_obj = sdk.get_managed_singleton("app.PlayerManager"):get_player()

-- 修改玩家属性
player_obj:set_hit_point(9999)

-- 注册每帧回调
re.on_frame(function()
    -- 自定义 ImGui 窗口
    if imgui.begin_window("My Mod", true) then
        imgui.text("Player HP: " .. player_obj:get_hit_point())
        if imgui.button("Heal") then
            player_obj:set_hit_point(9999)
        end
        imgui.end_window()
    end
end)

九、VR 子系统架构

9.1 双 API 支持

复制代码
┌─────────────────────────────────┐
│         VR 合成层               │
│  ┌───────────┐ ┌──────────────┐│
│  │  OpenXR   │ │   OpenVR     ││
│  │ (Khronos) │ │  (Valve)     ││
│  │  标准 API  │ │ SteamVR 专用 ││
│  └─────┬─────┘ └──────┬───────┘│
│        └──────┬───────┘        │
│         ┌─────▼─────┐          │
│         │ 帧合成器   │          │
│         │ (DX11/12)  │          │
│         └─────┬─────┘          │
│         ┌─────▼─────┐          │
│         │ 头部追踪   │          │
│         │ 6DOF 数据  │          │
│         └───────────┘          │
└─────────────────────────────────┘
  • OpenXR:行业标准,支持所有兼容头显(Meta Quest、Pico、WMR 等)
  • OpenVR:SteamVR 专用,Valve Index、HTC Vive 等
  • 用户可以二选一,OpenXR 是推荐方案

9.2 VR 功能矩阵

功能 RE2 RE3 RE4 RE7 RE8 DMC5 MHRise 其他
6DOF 头部追踪
运动控制器
第一人称 原生 原生
手动手电筒

6DOF 头部追踪是通用功能,所有游戏都支持。运动控制器需要逐游戏适配角色骨骼和动画。


十、多游戏适配机制

10.1 CMake 多目标构建

cmake 复制代码
# CMakeLists.txt 中为每个游戏定义独立的构建目标
# 每个目标链接相同的框架核心 + 游戏特定代码
add_library(RE2 SHARED ${RE2_SOURCES} ${FRAMEWORK_SOURCES})
add_library(RE3 SHARED ${RE3_SOURCES} ${FRAMEWORK_SOURCES})
add_library(DMC5 SHARED ${DMC5_SOURCES} ${FRAMEWORK_SOURCES})
# ...每个游戏一个 DLL

10.2 游戏识别与代码分支

cpp 复制代码
// GameIdentity 模块自动检测当前游戏
// 根据检测结果加载对应的 ReClass_Internal_*.hpp 定义
// SDK 中的类型偏移量、虚表索引等参数各游戏不同

10.3 适配层次

复制代码
Layer 1: 引擎通用层(所有游戏共享)
  ├── D3D Hook、DInput Hook
  ├── ImGui 集成
  ├── Lua 引擎
  └── VR 合成

Layer 2: 引擎版本适配层
  ├── 不同版本的 TDB(Type Database)格式
  ├── 不同版本的内存布局
  └── 不同版本的虚表索引

Layer 3: 游戏特定层
  ├── ReClass_Internal_*.hpp(类定义)
  ├── 游戏特定的 Hook 点
  └── 运动控制器映射(VR)

十一、支持的游戏列表

完全支持(有专用构建)

游戏 英文名 引擎
生化危机 2 重制版 Resident Evil 2 RE Engine
生化危机 3 重制版 Resident Evil 3 RE Engine
生化危机 4 重制版 Resident Evil 4 RE Engine
生化危机 7 Resident Evil 7 RE Engine
生化危机:村庄 Resident Evil Village (RE8) RE Engine
生化危机:安魂曲 Resident Evil Requiem (RE9) RE Engine
鬼泣 5 Devil May Cry 5 RE Engine
街头霸王 6 Street Fighter 6 RE Engine
怪物猎人:崛起 Monster Hunter Rise RE Engine
怪物猎人:荒野 Monster Hunter Wilds RE Engine
怪物猎人物语 3 Monster Hunter Stories 3 RE Engine
龙之信条 2 Dragon's Dogma 2 RE Engine

通过复用构建支持

游戏 复用构建
Ghosts 'n Goblins Resurrection RE8 构建
Apollo Justice: Ace Attorney Trilogy DD2 构建
Kunitsu-Gami: Path of the Goddess DD2 构建
Onimusha 2: Samurai's Destiny MHWILDS 构建

十二、构建系统深度解析

12.1 CMake + cmkr

项目使用 cmkrcmake.toml 自动生成 CMakeLists.txt。主 CMakeLists.txt 有 67KB,说明构建配置非常复杂。

12.2 编译环境要求

复制代码
C++23 标准 ← 最新标准,使用了 std::expected、std::format 等特性
MSVC 编译器 ← 强依赖,未测试其他编译器
/MT 静态链接运行时 ← Release 模式静态链接,减少 DLL 依赖
x64 平台 ← 仅 64 位

12.3 编译方式

命令行方式

bash 复制代码
git clone https://github.com/praydog/REFramework
git submodule update --init --recursive
cmake -S . -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=Release
cmake --build ./build --config Release

单目标编译(如只编译 RE2):

bash 复制代码
cmake --build ./build --config Release --target RE2

12.4 构建目标矩阵

构建目标 输出 DLL 适用游戏
RE2 dinput8.dll 生化2
RE3 dinput8.dll 生化3
RE4 dinput8.dll 生化4
RE7 dinput8.dll 生化7
RE8 dinput8.dll 生化8
RE9 dinput8.dll 生化9
DMC5 dinput8.dll 鬼泣5
SF6 dinput8.dll 街霸6
MHRISE dinput8.dll 怪猎崛起
MHWILDS dinput8.dll 怪猎荒野
DD2 dinput8.dll 龙之信条2
... ... ...

所有游戏的输出文件都叫 dinput8.dll,因为使用相同的 DLL 代理注入方式。

12.5 CI/CD

  • GitHub Actions 自动构建 PR
  • 开发版自动发布到 Nightly Builds

十三、核心功能模块

13.1 Mod 加载系统

  • DLL 注入方式加载(dinput8.dll)
  • 支持运行时热加载/卸载 Mod
  • 对游戏内存的实时修改能力

13.2 通用游戏工具

工具 说明 适用范围
Free Camera 自由视角相机 所有游戏
Scene Timescale 场景时间缩放 所有游戏
FOV Slider 视场角调节 所有游戏
Vignette Disabler 禁用暗角效果 所有游戏
Ultrawide Fix 超宽屏/比例修复 所有游戏
GUI Hider 隐藏/禁用 UI 所有游戏
Game Objects Display 游戏对象显示 调试用
Object Explorer 对象浏览器 调试用

13.3 已修复的游戏问题

  • RE8 启动崩溃
  • RE8 卡顿(击杀敌人、受伤等触发)
  • MHRise/RE8 第三方 DLL 导致的崩溃
  • RE9 松散纹理加载崩溃(2026-04-26 修复)

十四、Issue 分析与社区健康度

14.1 热门 Issue 分析

Issue 评论数 反应 问题类型
#1196 MHWilds 崩溃 106 👍11 新游戏兼容性
#122 RE2 启动崩溃 55 0 环境配置问题

14.2 Issue 分类

  1. 新游戏发布后的兼容性问题(最高优先级)

    • 每次 Capcom 发布新 RE Engine 游戏,REFramework 都需要适配
    • MHWilds 发布后产生了大量崩溃报告
  2. 环境/配置问题

    • VR 连接问题
    • 第三方 DLL 冲突
    • 驱动版本不兼容
  3. 功能请求

    • 新游戏支持
    • 更多 VR 功能
    • Lua API 扩展

14.3 社区健康度评分

维度 评分 说明
响应速度 ⭐⭐⭐ 核心开发者忙于代码,Issue 响应有时较慢
文档质量 ⭐⭐⭐⭐ 有独立文档站和 Wiki
社区互助 ⭐⭐⭐⭐ 用户之间会互相帮助解决问题
发布频率 ⭐⭐⭐⭐⭐ Nightly 构建持续更新
Bus Factor 高风险 --- praydog 贡献 93%+

十五、安全与逆向工程视角

15.1 技术合法性

REFramework 的行为模式:

  • DLL 代理注入(dinput8.dll):经典的游戏 Mod 技术,非恶意注入
  • 内存读写:修改自身进程内存,不涉及其他进程
  • 函数 Hook:拦截自身进程的 API 调用
  • 不联网:不修改网络通信,不提供作弊功能

15.2 反作弊兼容性

游戏 反作弊 REFramework 兼容性
生化系列(单机) ✅ 完全兼容
鬼泣5(单机) ✅ 完全兼容
街霸6 ⚠️ 在线模式可能被检测
怪猎系列 ⚠️ 在线模式可能被检测

15.3 逆向工程深度

REFramework 对 RE Engine 的逆向深度令人印象深刻:

  • 完整映射了引擎的类型系统(Type Database)
  • 逆向了对象的内存布局(GC 管理、引用计数)
  • 识别了动画状态机(MotionFsm2Layer)
  • 甚至开始逆向未发售游戏(Pragmata)

15.4 代码质量保障

  • .clang-format --- 统一代码风格
  • .clang-tidy --- 静态代码分析(2.4KB 规则集,较完善)
  • GitHub Issue Templates --- 结构化 Bug 报告 & 功能请求
  • CI 自动构建 --- PR 提交自动验证编译

十六、生态与关联项目

16.1 Mod 生态

  • Nexus Mods 上有大量基于 REFramework 的 Mod
  • 社区维护了丰富的 Lua 脚本库
  • REFramework-book 文档项目配合

16.2 关联项目

项目 说明
REFramework-nightly 每日构建版
Kanan 灵感来源项目
REFramework-book Lua API 文档

16.3 Tags/主题

cmkr cpp dmc5 freecam lua modding mods monster-hunter-rise monster-hunter-wilds re-engine re2 re3 re4 re7 re8 re9 scripting sf6 virtual-reality vr


十七、竞品对比

特性 REFramework FLUFFY MANAGER Nexus Mods (Vortex)
定位 运行时框架 Mod 管理器 Mod 管理平台
技术深度 极高(引擎级) 中(文件替换) 低(文件管理)
VR 支持 ✅ 原生
脚本系统 ✅ Lua 有限
游戏内 UI ✅ ImGui
自由相机
支持游戏数 12+ 20+ 数千
学习门槛

结论 :REFramework 不是 Mod 管理器的竞品,而是底层框架。它和 Fluffy Manager、Nexus Mods 是互补关系------REFramework 提供运行时能力,Mod 管理器负责文件分发。


十八、改进建议

18.1 技术层面

优先级 建议 原因
🔴 高 增加核心贡献者 Bus Factor = 1,项目风险极高
🔴 高 建立 Issue 分类和标签系统 623 个 Issue 难以管理
🟡 中 添加自动化测试 目前无测试代码,全靠人工验证
🟡 中 考虑用 Zig/Rust 重写关键 Hook 层 C++23 的内存安全问题
🟢 低 探索 Linux/Wine 兼容性 扩大用户群
🟢 低 从 OpenVR 迁移到纯 OpenXR 简化 VR 依赖

18.2 社区层面

优先级 建议 原因
🔴 高 招募更多核心开发者 降低 Bus Factor
🟡 中 建立 Mod 开发者社区(Discord/论坛) 增强用户粘性
🟡 中 编写更多入门教程 降低学习门槛
🟢 低 建立 Mod 认证/兼容性测试流程 提升 Mod 质量

十九、总结与评价

优势

  1. 覆盖面广:支持几乎所有主流 RE Engine 游戏,包括最新的 MH Wilds 和 RE9
  2. 功能全面:Mod 加载 + Lua 脚本 + VR 支持三位一体
  3. 技术深度极高:引擎级逆向,完整映射类型系统和对象模型
  4. 社区活跃:5000+ Stars,持续维护 7 年,最新提交距今仅 11 天
  5. 文档完善:有独立的 Lua API 文档站点和 Wiki
  6. 代码规范:使用 clang-format/tidy,有 CI 流水线
  7. MIT 协议:对商业和非商业用途均友好

不足

  1. Bus Factor 风险:praydog 一人贡献 93%+,项目可持续性存疑
  2. Open Issues 较多(623个),可能存在积压问题
  3. 仅支持 Windows:无 Linux/macOS 原生支持(虽然可通过 Wine 运行)
  4. VR 功能游戏间差异大:运动控制器仅支持 4 款游戏
  5. 无自动化测试:全靠人工验证,回归风险较高

适用场景

  • 🎮 想为 RE Engine 游戏安装 Mod 的玩家
  • 🥽 想在 VR 中体验生化危机/鬼泣/怪猎的 VR 爱好者
  • 🔧 想通过 Lua 脚本深度修改游戏行为的 Mod 开发者
  • 📸 想使用自由相机拍摄游戏画面的摄影师

附录:关键文件索引

文件路径 说明
CMakeLists.txt (67KB) 主构建文件,定义所有目标和依赖
src/D3D12Hook.cpp (30KB) D3D12 Hook 实现,最复杂的单文件
shared/sdk/RETypeDB.cpp 类型数据库逆向
shared/sdk/ReClass_Internal_*.hpp 各游戏的内部类定义
.clang-tidy (2.4KB) 静态分析规则集
.github/workflows/dev-release.yml CI/CD 自动构建

报告生成于 2026-05-07 04:03 CST
合并自:REFramework_项目分析报告.md (v1.0) + REFramework_深度技术分析.md (v2.0)
数据来源:GitHub API、CMakeLists.txt 源码分析、项目文档

相关推荐
xxjkkjjkj1 天前
REFrame
visual studio
IOT.FIVE.NO.12 天前
Codex、Claude Code、Cherry Studio 实测对比:CLI、桌面端怎么选?
ide·人工智能·编辑器·ai编程·ai写作·visual studio·vibecoding
wangl_923 天前
C#性能优化完全指南 - 从原理到实践
开发语言·性能优化·c#·.net·.netcore·visual studio
AC赳赳老秦4 天前
财务报销自动化:用 OpenClaw 自动识别发票信息、填写报销单、校验报销规则,减少手工操作
运维·网络·eclipse·github·visual studio·deepseek·openclaw
无限进步_4 天前
二叉搜索树完全解析:从概念到实现与应用场景
c语言·开发语言·数据结构·c++·算法·github·visual studio
水饺编程4 天前
第5章,[标签 Win32] :设备的尺寸(三)
c语言·c++·windows·visual studio
@_@ prince @_@4 天前
Git 命令大全(带详细说明)
git·gitee·github·visual studio
Hhy_11075 天前
【从零开始学习数据结构 ④】:栈 ——后进先出的艺术
c语言·数据结构·学习·visual studio