Hasty Briefsbeta

双语

Why 'com_maxfps 250x' uncaps Quake Live's frame rate

a day ago
  • #Reverse Engineering
  • #Software Bug
  • #Gaming
  • 一次 Discord 社区活动涉及玩《Quake Live》,促使作者检查游戏设置和刷新率。
  • 作者发现了一个漏洞:将 com_maxfps 设置为 '250x' 绕过了 250 FPS 的上限,允许高达 1000 FPS,这是因为 Cvar_ParseInteger() 中的解析错误。
  • 分析显示,这个漏洞的发生是因为 strstr() 错误地将 '250x' 识别为十六进制字符串,导致 sscanf() 失败并返回 0,而限幅操作使用的是浮点数值(250.0),而不是整数值。
  • 该漏洞是《Quake Live》特有的,因为《Quake 3》使用 atoi() 进行解析,并且没有发现其他 cvars 利用此问题。