Glibc 2.36 Dropping DT_HASH 通过 Steam Play 打破了简单的反作弊游戏
Glibc 2.36 带来了很多变化8月初发布。不幸的是,它放弃了无条件设置“--hash-style=both”以确保 GNU C 库共享对象中同时存在 DT_HASH 和 GNU_DT_HASH 部分,这最终破坏了 Easy Anti Cheat 和其他选择软件。一旦 Arch Linux 用户和其他人开始转向 Glibc 2.36,使用 Steam Play 的 Linux 游戏玩家以及迄今为止使用 Epic Games 的这种反作弊保护的游戏很快就发现了问题。
DT_GNU_HASH 比 DT_HASH 结构更好,尽管 DT_HASH 用于 ELF 对象哈希表以进行运行时符号解析。DT_GNU_HASH 已经存在了 15 年,它可以带来更快的链接和加载时间。大多数 Linux 发行版和开源软件多年来一直在愉快地使用 DT_GNU_HASH。
自本月初以来,Proton 的一个问题一直在跟踪 Glibc 2.36 如何破坏 Linux 上需要 EAC 的游戏。
在 Glibc 2.36 中,DT_HASH 不再设置,因为它们删除了“--hash-style=both”,因为 DT_GNU_HASH 更优越,大多数系统应该只是使用它,并且消除 DT_HASH 部分可以节省大约 1% 或 16kB 的空间Glibc 共享对象。但事实证明,Epic Games 仍然依赖 DT_HASH,并且这个反作弊模块将无法加载受 Glibc 2.36 保护的游戏。
这不仅是 EAC 问题,而且由于此更改,一些其他软件(例如 libstrangle)现在也在 Glibc 2.36 上中断。上游有关于该问题的 Glibc 错误报告,但尚未采取任何坚定的行动,上游开发人员对恢复更改犹豫不决。
过去一周半的问题已在内部进行了彻底讨论Valve 的 Proton 问题跟踪器。对于那些在 Arch Linux 上由于其滚动发布更新而首次报告问题的用户,glibc 2.36-2 目前正在测试该分发包是否恢复了 GNU Glibc 中早期的哈希样式更改,因此现在构建了这两种样式。Linux 游戏玩家已经测试了即将推出的 Arch Linux 软件包更新,并确认支持 EAC 的游戏正常运行。
Leave Glibc 2.36 Dropping DT_HASH 通过 Steam Play 打破了简单的反作弊游戏 to:
Read more #glibc posts
Best Posts From 逸凡
We have not curated any of ericjiang's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.