Mise à jour corrective de logiciels de jeu dans Windows XP, Windows Vista et Windows 7
Windows Vista et Windows 7 disposent d’un certain nombre de fonctionnalités pour rendre le système d’exploitation plus sécurisé. La sécurité ajoutée signifie que l’application de correctifs aux logiciels n’est pas aussi simple que par le passé. Cet article examine certaines méthodes de mise à jour corrective qui fonctionnent bien dans Windows Vista et Windows 7, ainsi que Dans Windows XP.
Il existe deux catégories main de jeux qui nécessitent des correctifs :
- Les jeux qui nécessitent uniquement des correctifs occasionnels, tels que la plupart des jeux hors connexion.
- Les jeux qui nécessitent des correctifs fréquents, comme la plupart des jeux en ligne.
Cet article offre également une brève présentation du contrôle de compte d’utilisateur (UAC) pour servir de base sur les droits que les développeurs peuvent attendre des utilisateurs dans Windows Vista et Windows 7.
- Contrôle de compte d'utilisateur
- Jeux qui nécessitent uniquement des correctifs occasionnels
- Jeux nécessitant des correctifs fréquents
- Résumé
Contrôle de compte d'utilisateur
Windows Vista et Windows 7 ont deux principaux types de comptes d’utilisateur : Utilisateur standard et Administrateur. Un compte d’utilisateur standard a plusieurs restrictions d’accès ; par exemple, il ne peut pas écrire de données dans le système de fichiers dans %SystemDrive%\Program Files ou dans le Registre dans le HKEY_LOCAL_MACHINE. Cela a des implications pour l’application de correctifs à un jeu s’il est installé dans un emplacement en lecture seule. Contrairement à Windows XP, le compte d’utilisateur standard est beaucoup plus courant dans Windows Vista et Windows 7. Les comptes d’utilisateur standard sont également requis pour les fonctionnalités importantes du système d’exploitation, telles que les contrôles parentaux. Le contrôle parental exige que le compte enfant soit un utilisateur standard, et l’élévation d’un tel compte au niveau administrateur pour un seul jeu empêche le contrôle parental de fonctionner avec tous les autres jeux. Il est donc important que les jeux soient conçus pour un utilisateur standard.
Windows Vista et Windows 7 ont un modèle plus récent pour les droits de l’utilisateur, afin d’empêcher les utilisateurs d’exécuter des programmes qui tentent d’effectuer des opérations que l’utilisateur n’a pas l’intention ou n’autorisent pas. À cette fin, le contrôle de compte d’utilisateur (anciennement le compte d’utilisateur le moins privilégié ou LUA) permet aux utilisateurs d’utiliser l’ordinateur avec des droits de bas niveau la plupart du temps, tout en étant en mesure d’exécuter facilement des applications qui nécessitent des droits de niveau supérieur, si nécessaire. Cela signifie que les comptes d’utilisateur standard et les comptes d’administrateur exécutent tous deux des applications avec des droits d’utilisateur standard, mais seuls les comptes d’administrateur ont la possibilité d’accorder des droits élevés aux applications. Le système d’exploitation demande aux utilisateurs disposant de comptes d’administrateur un consentement explicite avant d’exécuter une application avec des droits élevés, et si un programme qui requiert des droits d’administrateur est exécuté sur un compte d’utilisateur standard, le système demande l’approbation de l’administrateur.
Jeux qui nécessitent uniquement des correctifs occasionnels
Certains jeux ne nécessitent que quelques correctifs tout au long de leur cycle de vie. Deux méthodes que vous pouvez utiliser pour cette fréquence de mise à jour corrective sont de distribuer des correctifs en tant que packages Windows Installer, ce qui ne nécessite généralement pas de droits d’administrateur, ou d’utiliser un autre type de distribution qui modifie directement les fichiers de jeu.
Notes
Qu’un jeu nécessite ou non des mises à jour correctives fréquentes, les applications nécessitent généralement l’installation ou la suppression de droits d’administrateur.
Méthode 1 : Utiliser Windows Installer pour les correctifs occasionnels
Dans cette méthode, un Programme d’installation Windows est utilisé pour installer un package (fichier .msi) et un correctif Windows Installer (fichier .msp) est distribué pour installer des correctifs. Le package doit avoir une table MsiPatchCertificate et le correctif doit être signé numériquement par un certificat dans la table. Pour plus d’informations sur la signature numérique, consultez Signature Authenticode pour les développeurs de jeux.
Pour plus d’informations et la configuration requise pour utiliser cette méthode de mise à jour corrective, consultez la documentation de Windows Installer :
- Mises à jour correctives et mises à niveau
- Mise à jour corrective du contrôle de compte d’utilisateur (UAC)
L’inconvénient de cette méthode est que si le jeu n’a pas été installé à partir d’un support amovible sur Windows XP, la mise à jour corrective nécessite des droits d’administrateur. Toutefois, cela ne risque pas d’être trop restrictif, car la plupart des utilisateurs administrateurs sur Windows XP et la restriction aux logiciels installés à partir d’un support amovible n’est pas présente sur Windows Vista.
L’avantage main de cette méthode est que les correctifs peuvent être appliqués par un compte d’utilisateur standard sans nécessiter d’invite et d’authentification pour les droits élevés. Cela offre une meilleure expérience utilisateur, car pour jouer à un jeu, un utilisateur disposant d’un compte d’utilisateur Standard n’a pas besoin de demander à une personne disposant d’un compte d’administrateur d’installer le correctif ou de fournir au compte d’utilisateur standard des droits d’administrateur permanents.
Il est possible que cette méthode fonctionne pour les jeux qui nécessitent des correctifs fréquents, mais la surcharge liée à l’utilisation de packages Windows Installer, en termes d’intégration de build et de prise en charge d’un grand nombre de fichiers, peut rendre cette méthode moins souhaitable que d’autres.
Méthode 2 : Exiger des droits d’administrateur pour appliquer des correctifs
Dans cette méthode, le fichier exécutable qui applique le correctif nécessite l’exécution de droits d’administrateur. Avec les droits d’administrateur, l’exécutable de mise à jour corrective peut modifier directement les fichiers de jeu situés dans %SystemDrive%\Program Files.
L’avantage de cette méthode est sa simplicité. Toutefois, cette méthode n’est pas appropriée si le jeu a besoin de correctifs fréquents, car si un utilisateur disposant d’un compte d’utilisateur standard souhaite jouer à un jeu qui nécessite des correctifs fréquents, comme un jeu en ligne massivement multi-joueur, cet utilisateur a deux choix :
- Obtenir un administrateur pour se connecter et corriger le jeu, ce qui peut être gênant pour les deux parties.
- Avoir son compte définitivement élevé avec des droits d’administrateur.
Notes
Cette dernière solution non seulement affaiblit la sécurité du système dans son ensemble, mais elle empêche également des fonctionnalités importantes, telles que le contrôle parental, de fonctionner.
Lors de l’implémentation de cette méthode, le fichier exécutable qui applique le correctif doit être différent de l’exécutable du jeu. Le manifeste de l’exécutable de mise à jour corrective doit spécifier requireAdministrator pour requestedExecutionLevel pour le désigner comme une application qui nécessite des droits d’administrateur. Pour plus d’informations sur la procédure à suivre, consultez Meilleures pratiques et instructions pour les développeurs pour les applications dans un environnement moins privilégié, dans « Schéma de manifeste d’application ».
Lorsque cette méthode est utilisée, même avec les paramètres du manifeste, le fichier exécutable peut toujours être lancé sans droits d’administrateur dans deux cas :
- Si le système d’exploitation est Windows XP et que le compte de l’utilisateur est un utilisateur restreint.
- Si le système d’exploitation est Windows Vista ou Windows 7, le compte de l’utilisateur est un utilisateur standard et la UAC est désactivée.
Ces deux scénarios sont rares pour les consommateurs. Toutefois, l’éditeur de correctifs doit avoir le manifeste nécessitant des droits d’administrateur, et il doit appeler IsUserAnAdmin ; si cette fonction retourne FALSE, le message d’erreur « Les droits d’administrateur sont requis » s’affiche.
Dans l’ensemble, la méthode 1 est préférable pour les jeux qui n’ont besoin que de quelques correctifs au cours de leur durée de vie.
Jeux nécessitant des correctifs fréquents
De nombreux jeux basés sur Internet sont constamment améliorés, et ils nécessitent généralement des correctifs réguliers. Pour ces jeux, des correctifs peuvent être appliqués par utilisateur ou par ordinateur, comme indiqué dans les rubriques suivantes. D’autres solutions possibles incluent la modification de la liste de contrôle d’accès qui protège %SystemDrive%\Program Files ou la création d’un service personnalisé.
Méthode 3 : Installer Per-User
Une approche simple et recommandée consiste à installer l’ensemble du jeu dans un sous-dossier par utilisateur du dossier de données d’application local, que vous pouvez trouver en appelant SHGetFolderPath avec CSIDL_LOCAL_APPDATA. Un exemple de chemin d’accès est C:\Documents and Settings\user name\Local Settings\Application Data\ExampleGame. Un tel emplacement permet à une application s’exécutant avec des droits d’utilisateur standard de modifier directement les fichiers de jeu.
Toutefois, cette approche présente un inconvénient lorsqu’un ordinateur a plusieurs utilisateurs : chaque utilisateur a installé une copie du jeu et les correctifs doivent être téléchargés et appliqués par chaque utilisateur. Cela gaspille non seulement le temps et l’espace disque des utilisateurs, mais augmente également l’utilisation de la bande passante réseau pour le serveur qui fournit des correctifs. En outre, étant donné que toute application disposant de droits d’utilisateur standard peut modifier le jeu, les exécutables de jeu sont moins protégés ; c’est au fabricant du jeu de décider si c’est acceptable ou non.
Méthode 4 : Installer sur un emplacement commun Per-Computer
Une autre méthode consiste à installer les données de jeu non exécutables dans un sous-répertoire du chemin spécifié par SHGetFolderPath CSIDL_COMMON_APPDATA ; un exemple de chemin d’accès est C:\Documents and Settings\All Users\Application Data\ExampleGame. Il s’agit d’un emplacement partagé pour tous les utilisateurs, qui peut être modifié par les applications qui s’exécutent avec des droits d’utilisateur standard. Cette méthode réduit la nécessité de réappliquer des correctifs volumineux lorsque le jeu est joué à partir de plusieurs comptes. Les fichiers exécutables du jeu doivent être conservés dans %SystemDrive%\Programs Files afin de réduire le risque pour d’autres comptes sur le système. Les fichiers exécutables doivent vérifier l’intégrité du nouveau contenu dans le répertoire partagé, car cet emplacement peut être modifié par un programme ou une personne disposant de droits d’utilisateur standard ; envisagez d’utiliser MapFileAndCheckSum pour calculer une somme de contrôle des fichiers.
Cette méthode a l’avantage de fonctionner aussi bien sur Windows XP et Windows Vista, et elle ne nécessite pas de droits d’administrateur.
Autres possibilités
En dehors des méthodes déjà abordées, une autre possibilité consiste à modifier la liste de contrôle d’accès de %SystemDrive%\Program Files\Game Folder\ lors de l’installation du jeu afin qu’un outil de mise à jour corrective puisse écrire directement dans les fichiers du jeu, même lorsqu’il est exécuté avec des droits d’utilisateur standard. Bien que ce ne soit pas difficile, il contourne la protection de sécurité que le système offre aux fichiers du jeu et offre la possibilité aux programmes malveillants de modifier le contenu du répertoire. Cela n’est pas recommandé, et il est vivement recommandé d’utiliser une alternative à la place.
Une dernière possibilité consiste à écrire un service personnalisé. En général, écrire un service personnalisé pour corriger des jeux n’est pas une bonne idée, car cela est compliqué et sujet aux erreurs. Il est recommandé d’appliquer des correctifs à l’aide d’autres méthodes décrites dans cet article. Toutefois, un service personnalisé peut être nécessaire lorsqu’il est combiné à des solutions anti-triche ou anti-piratage. Un tel service doit prendre en charge un grand nombre de jeux et être conçu de telle sorte qu’il puisse uniquement télécharger les fichiers correctifs et écrire uniquement dans le répertoire d’installation du jeu cible. Il est important que le service soit petit, qu’il dispose d’une surface minimale vulnérable aux attaques et qu’il utilise le moins de ressources système possible lorsque le jeu n’est pas en cours d’exécution.
Résumé
En fin de compte, c’est à vous de décider quelle méthode implémenter. Vous devez évaluer les facteurs qui sont importants pour vous. La sécurité, la fréquence des mises à jour correctives, la facilité d’utilisation par le client, la charge de travail requise pour l’implémentation, la complexité de la solution et la conformité des fonctionnalités de la plateforme sont les facteurs que chaque développeur doit prendre en compte avant de décider d’une méthode particulière.
Vous trouverez plus d’informations sur la protection des comptes d’utilisateur dans Exigences de développement d’applications Windows Vista pour le contrôle de compte d’utilisateur (UAC).