Win11 24H2 揭开《GTA:圣安地列斯》游戏 20 年老漏洞:Skimmer 飞机凭空消失 |
珠江路在线
2025年4月24日
【
转载
】传奇世界网页版
|
本文标签:Win11 24H2 |
4 月 24 日 信息,科技媒体 NeoWin 昨日(4 月 23 日)公布博文,报导称在 Windows 11 24H2 系统 设施上,运行《侠盗猎车手:圣安地列斯》游戏,Skimmer 水上飞机 彻底消逝, 无奈在游戏世界中找到 。
这一 景象在发烧友社区激发热议,最后引起了 SilentPatch 开发者 Silent 的 留神 。SilentPatch 是一个致力于修复老游戏 漏洞、 晋升兼容性的非官方 名目 。
Silent 最初怀 疑难题可能来自 其余 MOD 或特定系统配置,但随后在未安装任何 MOD 的纯净版游戏上, 只有在 Windows 11 24H2 上运行 Skimmer 就会消逝 。
Silent 在 Windows 11 24H2 环境下测试,发现 Skimmer 确切从 通例位置消逝 。更为诡异的是,当他通过游戏内命令强制生成飞机后,角色 CJ 会被弹射到天空中, 间隔高达 1.087 quadrillion light-years(约 1.087 千万亿光年),游戏画面失控或直接卡死 。
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 11 24H2 更新转变了内存堆栈 使用 模式( 波及 LeaveCriticalSection 函数), 遮蔽了残留值,招致 Skimmer 的物理计算彻底失控 。
Silent 强调,这并非 Windows 11 的问题,而是《GTA San Andreas》代码 本身的 漏洞,长 工夫依赖内存布局的“侥幸”运行 。他将在下一版 SilentPatch 中修复此问题 。
发烧友当前可手动编辑游戏目录下的 datavehicles.ide 文件,找到 Skimmer 行并增加轮子尺寸参数(0.7),即可 复原飞机 。