
RE-UE4SS 兼容性修复(适用于 2.0 更新,UE5.5)
非官方 RE-UE4SS 兼容构建,适用于《潜行者2》2.0 更新 / UE5.5,修复了 GUObjectArray 检测、启动时 UObject/FName 崩溃以及 GMalloc 解析错误的问题。
查看大图RE-UE4SS 兼容性修复(适用于 S.T.A.L.K.E.R. 2 Update 2.0)
这是针对《S.T.A.L.K.E.R. 2:切尔诺贝利之心》Update 2.0 / 虚幻引擎 5.5 的非官方临时兼容版 RE-UE4SS。
这不是已弃用的 UETools .pak 模组的更新版本。
它修复了在测试的 STALKER 2 Update 2.0 可执行文件上发现的若干 RE-UE4SS 兼容性问题。
哪些地方出了问题?
调试过程中发现了三个独立的问题。
1. GUObjectArray 检测
原版 UE4SS 在测试的 Update 2.0 可执行文件上无法定位 GUObjectArray。
此包包含一个自定义的:
UE4SS_Signatures/GUObjectArray.lua
该签名经过测试为唯一匹配,并能在启用 ASLR 的情况下正确解析 GUObjectArray。
2. UObject / FName 启动崩溃
在 GUObjectArray 被解析后,UE4SS 能进一步推进,但在早期对象初始化过程中崩溃,涉及 GetFullName、GetPathName 和 FName 处理。
包含的 UE4SS.dll 包含针对此启动路径的兼容性改动和更安全的对象查找回退方案。
相关的上游 RE-UE4SS 问题: https://github.com/UE4SS-RE/RE-UE4SS/issues/1250
3. GMalloc 解析错误
在绕过上一个问题后,在以下过程中发生了另一处崩溃:
TypeChecker::store_all_object_types -> TSet::Emplace
现有的 GMalloc 模式与游戏不匹配,因此 patternsleuth 回退到其基于字符串的解析器。
该解析器选择了一个误报的全局变量,它不是 FMalloc 对象。
结果:
QuantizeSize(0x60, 0)
返回了:
1
而不是有效的分配大小。
通过游戏的分配器调用路径追踪到了实际的分配器。 其 QuantizeSize 实现对于请求大小正确返回了:
0x60
请求大小为:
0x60
创建并测试了新的 GMalloc AOB。
该修复已提交上游:
https://github.com/trumank/patternsleuth/pull/24
测试结果
测试环境:
S.T.A.L.K.E.R. 2 Update 2.0 虚幻引擎 5.5 Windows x64 开发期间使用 Steam 可执行文件
使用包含的构建版本:
- 游戏可到达主菜单,没有之前的致命错误
- UE4SS 初始化成功
- UE4SS 控制台功能正常
- 成功执行了一条物品添加控制台命令
其他商店平台的可执行文件尚未测试。
[u][color=#bf9000]安装 - 补丁 2.0.5[/color][/u]
[color=#b45f06]## 重要 [/color]
此压缩包不是完整的 RE-UE4SS 安装包。
此兼容性修复已使用:RE-UE4SS v3.0.1-1028-gd7e7826d 进行测试
目前不支持使用其他 UE4SS 构建版本,可能会导致崩溃。
强烈建议手动安装。
1. 安装正确的 RE-UE4SS 构建版本
下载:从 GitHub 上的 RE-UE4SS Experimental releases 下载 **UE4SS_v3.0.1-1028-gd7e7826d.zip**。
解压到:Stalker2\Binaries\Win64\
解压后,你应该拥有类似以下文件:
Stalker2\Binaries\Win64\dwmapi.dll
Stalker2\Binaries\Win64\ue4ss\UE4SS.dll
Stalker2\Binaries\Win64\ue4ss\UE4SS-settings.ini
如果你没有这些文件,说明 UE4SS 未正确安装。
2. 安装此兼容性修复
首先备份你当前的 UE4SS 文件。
将此模组压缩包解压到:Stalker2\Binaries\Win64\
允许 Windows 合并文件夹并替换:ue4ss\UE4SS.dll
压缩包还会安装所需的自定义签名:
ue4ss\UE4SS_Signatures\GUObjectArray.lua
ue4ss\UE4SS_Signatures\FName_ToString.lua
3. 配置 UE4SS
打开:ue4ss\UE4SS-settings.ini
找到并设置:
bUseUObjectArrayCache = false
DefaultFNameToStringMethod = Scan
然后找到:[Hooks] 部分。
确保以下值完全为:
HookProcessLocalScriptFunction = 0
HookInitGameState = 0
HookLoadMap = 0
HookCallFunctionByNameWithArguments = 0
HookBeginPlay = 0
HookLocalPlayerExec = 0
HookAActorTick = 0
HookEngineTick = 0
HookGameViewportClientTick = 0
不要禁用所有钩子
你不需要将每个 Hook 值都改为 0。
以下可以保持启用:
HookProcessInternal = 1
HookEndPlay = 1
HookUObjectProcessEvent = 1
HookProcessConsoleExec = 1
HookUStructLink = 1
补丁 2.0.5 的重要新改动是:
HookProcessLocalScriptFunction = 0
[color=#f6b26b]# 非常重要 — 补丁 2.0.5[/color]
补丁 2.0.5 引入了两个额外的 UE4SS 兼容性问题。
1. ProcessLocalScriptFunction
UE4SS 在补丁 2.0.5 上解析到无效的 ProcessLocalScriptFunction 地址。 因此需要:HookProcessLocalScriptFunction = 0 保持此钩子启用可能会导致[color=#cc4125]立即[/color]启动/访问冲突[color=#cc4125]崩溃[/color]。
2. FName::ToString
之前的:"DefaultFNameToStringMethod = Conv_NameToString" 变通方案在补丁 2.0.5 上不再可靠。
因此 v1.2 包含:"UE4SS_Signatures\FName_ToString.lua" 并使用:
DefaultFNameToStringMethod = Scan
自定义签名已在补丁 2.0.5 可执行文件上验证。
控制台
你不需要为此兼容性修复启用外部 UE4SS 调试 GUI 控制台即可正常工作。
诸如以下设置:
ConsoleEnabled = 1
GuiConsoleEnabled = 1
GuiConsoleVisible = 1
仅控制 UE4SS 的外部调试控制台/窗口。
它们不是游戏内控制台或此兼容性补丁本身所必需的。
如果游戏启动时仍然崩溃
在报告问题之前,请核实以下所有内容:
- 你正在运行 S.T.A.L.K.E.R. 2 补丁 2.0.5。
- 你已安装 UE4SS v3.0.1-1028-gd7e7826d。
- 此模组已解压到: Stalker2\Binaries\Win64\
- 两个文件都存在: ue4ss\UE4SS_Signatures\GUObjectArray.lua ue4ss\UE4SS_Signatures\FName_ToString.lua
- 你的 UE4SS-settings.ini 包含: bUseUObjectArrayCache = false
- 它包含: DefaultFNameToStringMethod = Scan
- 它包含: HookProcessLocalScriptFunction = 0
- 上面列出的其他已禁用钩子也设置为 0。
如果以上所有内容都正确但游戏仍然崩溃,请在报告问题时附上你的:
UE4SS.log
重要
此构建是专门为测试的 Update 2.0 可执行文件制作的。
未来的 S.T.A.L.K.E.R. 2 更新可能会使一个或多个签名失效。
一旦这些修复在官方 RE-UE4SS 构建中可用,用户应优先使用官方发布版本,而不是此临时兼容性构建。
源码与透明度
RE-UE4SS: https://github.com/UE4SS-RE/RE-UE4SS
patternsleuth: https://github.com/trumank/patternsleuth
GMalloc 上游拉取请求: https://github.com/trumank/patternsleuth/pull/24
RE-UE4SS 基础提交: d7e7826d415b0332b43439a64e6c87f64019be03
patternsleuth 修补提交: 9fbd2de36a6c79b7050c442da596073fe2b577ad
下载内容包含:
- 精确的源码差异
- 构建信息
- SHA-256 哈希
- 许可证信息
- GUObjectArray 签名源码
不包含任何 S.T.A.L.K.E.R. 2 可执行文件、DLL、PAK 文件、内存转储或游戏资源。
致谢
RE-UE4SS: UE4SS-RE 贡献者 / Narknon
patternsleuth: trumank 及贡献者
STALKER 2 Update 2.0 兼容性调试、签名和测试: robert-krukau
本项目与 GSC Game World、Epic Games、Nexus Mods 或 RE-UE4SS 维护者无关联,也未得到其认可。
还没有人评论,去客户端里说两句吧。
评论在新手盒子客户端中发表,这里同步展示。