> 资讯 > 业界新闻

Win11 24H2 揭开《GTA:圣安地列斯》游戏 20 年老漏洞:Skimmer 飞机凭空消失

人阅读 2025-04-24 09:50:50GTA

4 月 24 日消息,科技媒体 NeoWin 昨日(4 月 23 日)发布博文,报道称在 Windows 11 24H2 系统设备上,运行《侠盗猎车手:圣安地列斯》游戏,Skimmer 水上飞机完全消失,无法在游戏世界中找到。

这一现象在玩家社区引发热议,最终引起了 SilentPatch 开发者 Silent 的注意。SilentPatch 是一个致力于修复老游戏漏洞、提升兼容性的非官方项目。

游戏常规位置已不见 Skimmer

Silent 最初怀疑问题可能来自其他 MOD 或特定系统配置,但随后在未安装任何 MOD 的纯净版游戏上,只要在 Windows 11 24H2 上运行 Skimmer 就会消失。

Silent 在 Windows 11 24H2 环境下测试,发现 Skimmer 确实从常规位置消失。更为诡异的是,当他通过游戏内命令强制生成飞机后,角色 CJ 会被弹射到天空中,距离高达 1.087 quadrillion light-years(约 1.087 千万亿光年),游戏画面失控或直接卡死。

显示高度 1.087 quadrillion light-years

Silent 进一步分析代码,发现问题源于 Skimmer 的物理边界框(bounding box)计算错误,其 Z 值被设置为一个荒谬的数字(-4.30747210e 33),导致游戏误判飞机位置。

深入追踪后,Silent 发现问题根源在于游戏配置文件 vehicles.ide 中 Skimmer 的定义不完整,缺少轮子尺寸参数。

这源于《GTA: Vice City》时期 Skimmer 被归类为船只,无需这些参数,而在《San Andreas》中改为飞机后,Rockstar 未更新配置。游戏代码在读取数据时未初始化相关变量,导致其值依赖于内存堆栈中的随机数据。

过去 20 年,在 Windows 10 等版本中,Skimmer 前一个车辆 Topfun 的轮子尺寸值(0.7)恰好残留在内存中,意外让 Skimmer 勉强正常运行。

Windows 10 上并未调整堆栈值

但 Windows 11 24H2 更新改变了内存堆栈使用方式(涉及 LeaveCriticalSection 函数),覆盖了残留值,导致 Skimmer 的物理计算彻底失控。

在 Windows 11 24H2 版本中,新的临界区实现方式修改了更多的堆栈空间。

Silent 强调,这并非 Windows 11 的问题,而是《GTA San Andreas》代码本身的漏洞,长期依赖内存布局的“侥幸”运行。他将在下一版 SilentPatch 中修复此问题。

玩家目前可手动编辑游戏目录下的 data\vehicles.ide 文件,找到 Skimmer 行并添加轮子尺寸参数(0.7),即可恢复飞机。

LOT物联网

iot产品 iot技术 iot应用 iot工程

Powered By LOT物联网  闽ICP备2024036174号-1

联系邮箱:support1012@126.com