玩球体育在线(中国)唯一官方网站

设置
  • 日夜间
    随系统
    浅色
    深色
  • 主题色

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

2025/4/24 9:46:53 来源:IT之家 作者:故渊 责编:故渊

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

The infamouse skimmer

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

The Skimmer is gone from its usual spot

游戏常规位置已不见 Skimmer

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

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

Debugging GTA San Andreas

显示高度 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 年,在 等版本中,Skimmer 前一个车辆 Topfun 的轮子尺寸值(0.7)恰好残留在内存中,意外让 Skimmer 勉强正常运行。

On Windows 10 the stack values didnt change much between the calls In fact you can spot the two values of 0x3F449BA6  0768 highlighted on the screenshot They correspond to Landstalkers wheel scales

Windows 10 上并未调整堆栈值

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

On Windows 11 24H2 more stack space was modified by a new implementation of Critical Sections

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

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

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

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

玩球体育在线(中国)唯一官方网站相关的文章

关键词:GTAWin11游戏

软媒旗下网站: IT之家 最会买 - 返利返现优惠券 Win7之家 Win10之家

软媒旗下软件: 软媒玩球体育在线(中国)唯一官方网站APP应用 魔方