Un indicateur de liaison dans DXVK arrête un crash anti-triche d’EA, et Proton l’a eu six heures plus tard

L’article ne peut pas être activé avec JavaScript. Vous pouvez également activer JavaScript dans votre navigateur et sur la nouvelle page.

DXVK construit désormais ses DLL de version avec des noms de section PE à huit caractères pour arrêter un crash lors d’une vérification anti-triche EA, et l’ensemble du changement est un indicateur d’éditeur de liens. Le commit a atterri sur la branche principale de DXVK à 14:14:36 ​​UTC le 12 octobre, et une version de pointe de Proton réalisée six heures plus tard l’épingle déjà. Il a été écrit deux jours plus tôt par Matthias Mailänder et validé par Philip Rebohle, responsable de DXVK.

Sa ligne d’objet nomme la faute : « [meta] Solution de contournement à un crash dans les vérifications de signature de code anti-triche d’EA », et son corps nomme un seul jeu : EA Sports WRCSteam app 1849250, développé par Codemasters et publié par Electronic Arts. Le propre commentaire de DXVK sur le changement se lit comme suit : « Suivez les normes PE avec des sections de nom de 8 caractères, certains logiciels qui inspectent nos DLL pourraient autrement planter. Pour que les symboles nain2 fonctionnent, nous devons conserver les valeurs par défaut de Mingw. »

Un indicateur, et uniquement dans les versions release

Mécaniquement, DXVK passe désormais -Wl,–disable-long-section-names à l’éditeur de liens chaque fois que l’option de débogage est désactivée. Les versions de débogage conservent les valeurs par défaut de MinGW, ce dont les symboles dwarf2 ont besoin. Les noms les plus courts s’appliquent donc aux bibliothèques sur lesquelles les gens jouent et non à celles avec lesquelles les développeurs déboguent.

DXVK est la couche qui transforme les appels Direct3D en Vulkan, et Valve l’expédie dans Proton. Ce n’est pas le projet de Valve. Il appartient au développeur connu sous le nom de doitsujin, qui a fermé la demande d’extraction 5968 avec deux mots : « Fusionné manuellement ». Sa lecture du problème était modérée : MinGW « émet par défaut des binaires PE non standard » que « les outils natifs de Windows pourraient étouffer » et « il ne devrait y avoir aucun mal à obtenir cela ».

Le correctif est venu du joueur qui l’a frappé

Mailänder est un contributeur externe plutôt qu’un compte Valve ou CodeWeavers, et le diagnostic dans la pull request est le sien plutôt que celui d’EA ou de Valve. Il écrit qu’un outil de codage LLM a retracé un rapport sur le propre forum d’EA jusqu’à « une vérification Microsoft Authenticode défectueuse déclenchée par les octets de fin de la version MingW », et que l’indicateur du compilateur « élimine ceux-ci et contourne le crash ». Il dit avoir testé la première version avec DXVK 2.7.1, puis recompilé et testé avec 3.1.1 et master, et le 11 octobre, il a posté à nouveau pour dire à propos des bibliothèques reconstruites : « Je peux confirmer que ces DLL ne plantent pas non plus. »

Il exécute DXVK sous Windows plutôt que sous Linux, pour contourner les problèmes visuels sur une carte graphique AMD série 9000, ce qui lui a permis de passer un contrôle anti-triche. Son résumé est sans détour : « EA a arrêté les mises à jour de ce jeu et activé l’anti-triche, ce qui n’est pas une bonne position pour les consommateurs, qui sont désormais condamnés à s’aider eux-mêmes. » La faute réside dans la vérification de signature qui inspecte ces DLL, donc ce qui a changé, c’est la façon dont DXVK les produit. EA a activé l’anti-triche dans son catalogue cet automne, y compris le déploiement du 29 septembre dans Légendes Apex cela a poussé Respawn à recommander le client Steam.

L’étiquette de pointe de Proton l’a porté six heures plus tard

Le changement a atteint une version publiée par Valve le même soir. La balise de pointe du référentiel Proton se terminant par d649c4b-v223075 pointe vers une validation effectuée à 20:33:42 UTC le 12 octobre, et l’arborescence de cette balise épingle son sous-module dxvk à 649c4bc0f0e303fcf9e21fad1c36e30ebce79b02, la même validation. Six heures et 19 minutes séparent la fusion de cette build.

Bleeding-Edge est le canal le plus rapide et le moins testé publié par Valve. Il ne s’agit pas de Proton Experimental ni de la branche stable, qui est revenue le 12 octobre avec deux correctifs de l’application EA après 49 jours calmes. S’y inscrire signifie le sélectionner manuellement dans les paramètres de compatibilité de Steam et prendre tout ce qui s’y trouve.

La portée reste étroite. Un jeu est nommé dans le commit, une vérification de signature de code est décrite et rien dans le changement ne prétend que les noms longs cassaient autre chose. Ce qui est large, c’est la construction : chaque version de la bibliothèque DXVK suit désormais la règle des huit caractères, ce qui constitue un changement dans la façon dont une couche de traduction entière est compilée, sur la base du rapport de bogue d’un joueur. C’est le deuxième changement de DXVK en une semaine pour régler un crash qui ressemblait au problème de quelqu’un d’autre, après le blocage du Xid 109. Impasse cela a été réglé dans DXVK plutôt que dans le pilote de Nvidia.