Developpez.com

Le Club des Développeurs et IT Pro

Gaming : Windows 10 intègre une API anti-triche pour les jeux PC

TruePlay fait partie de la Fall Creators Update

Le 2017-10-21 13:12:52, par Patrick Ruiz, Chroniqueur Actualités
Une liste non exhaustive des améliorations disponibles via la Fall Creators Update de Windows 10 déployée depuis le 17 octobre dernier vient d’être publiée sur cette plateforme. Le lecteur voudra bien l’étendre avec TruePlay, une API que Microsoft a annoncée dans le cadre de la sortie de la build 16251 destinée aux Insiders. TruePlay est destinée aux développeurs qui veulent empêcher les tricheurs de prendre le pas sur leurs adversaires dans des sessions de jeux PC.

L’API permet la création de jeux qui fonctionnent dans des processus protégés contre les modifications mémoire. Cette protection permet de rendre l’expérience de jeu exempte d’attaques perpétrées par les aimbots ou autres speedhack, notamment, lors des sessions de jeux opposant plusieurs joueurs en ligne.

Par ailleurs, la firme de Redmond précise que la protection mémoire est couplée à un service de monitoring des sessions de jeu géré par le duo de fonctions EnableActiveGameMonitoring() et ReportGameActivity() dans l’exemple d’utilisation qui suit. Le service de surveillance est prévu pour traquer les manipulations mémoire mises en place par les tricheurs. À cet effet, il est prévu que des alertes soient générées et transmises aux développeurs desdits jeux. Dans le but de protéger la vie privée des utilisateurs, Microsoft assure que seuls ces derniers recevront les informations système collectées.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
unsigned int frameNumber = 0;

bool Init()
{
	auto gameMonitor = Windows::Gaming::UI::GameMonitor::GetDefault();

	if (gameMonitor != nullptr)
	{
		// The game displays the system UI to help the customer turn on game monitoring.
		concurrency::create_task(gameMonitor->RequestPermissionAsync()).then([=](Windows::Gaming::UI::GameMonitoringPermission permissionState)
		{
			if (permissionState == Windows::Gaming::UI::GameMonitoringPermission::Allowed)
			{
				// The customer turned on game monitoring. The game can proceed.
			}
			else if (permissionState == Windows::Gaming::UI::GameMonitoringPermission::DeniedByUser)
			{
				// The customer cancelled out of the dialog; game monitoring is not enabled.
				// The game should exit experiences or disable features which require game monitoring.
			}
			else if (permissionState == Windows::Gaming::UI::GameMonitoringPermission::DeniedBySystem)
			{
				// System policy prohibits game monitoring. The opt-in dialog will not be displayed because the customer cannot 
				// give permission. The game should disable features requiring game monitoring.
			}
		});
	}
	else
	{
		// Game monitoring is not supported on this system.
	}
}

void GameTick()
{
	// ... Game logic ...
	
	// Update the anti-cheat system every 5 minutes in a 60 FPS game.
	if (frameNumber % (5 * 60 * 60) == 0)
	{
		GAME_MONITORING_PERMISSION_STATE permissionState;
		
		if (FAILED(GetGameMonitoringPermissionState(&permissionState)))
		{
			return;
		}

		if (permissionState != GAME_MONITORING_ALLOWED && permissionState != GAME_MONITORING_NOT_SUPPORTED)
		{
			// The game can't mitigate this, so it exits the function.
			return;
		}

		ReportGameActivity();
	}

	++frameNumber;
}

// Called by game logic.
void EnterSinglePlayerMatch()
{
	// Disable monitoring for offline games.
	EnableActiveGameMonitoring(FALSE);
}

// Called by game logic.
void EnterMultiPlayerMatch()
{
	EnableActiveGameMonitoring(TRUE);
	SetGameActivityCorrelationId(L"GameDefinedCorrelationIdToAssociateWithTruePlayLogs");

	// The monitoring state may have changed, so update the service immediately.
	ReportGameActivity();
}
Le système anti-triche peut être appliqué à un jeu dans son entièreté ou à certaines portions, mais, comme on l’a vu dans l’exemple fourni, uniquement à des sessions qui opposent plusieurs joueurs. Les joueurs seront invités à activer la protection via une invite système. Il est prévu que les parties du jeu protégées par TruePlay ne soient pas accessibles dans le cas où l’utilisateur décide de faire sans la protection.


L’API TruePlay est pour le moment réservée au développement d’applications dites universelles (UWP) c'est-à-dire pour des cibles matérielles tournant sous Windows 10 : PC, tablettes, Xbox, etc.

Source : MSDN

Et vous ?

Qu’en pensez-vous ?
  Discussion forum
6 commentaires
  • SurferIX
    Membre chevronné
    Envoyé par Patrick Ruiz
    Gaming : Windows 10 intègre une API anti-triche pour les jeux PC
    TruePlay fait partie de la Fall Creators Update

    Une liste non exhaustive des améliorations disponibles via la Fall Creators Update de Windows 10 déployée depuis le 17 octobre dernier vient d’être publiée sur cette plateforme. Le lecteur voudra bien l’étendre avec TruePlay, une API que Microsoft a annoncée dans le cadre de la sortie de la build 16251 destinée aux Insiders. TruePlay est destinée aux développeurs qui veulent empêcher les tricheurs de prendre le pas sur leurs adversaires dans des sessions de jeux PC.

    L’API permet la création de jeux qui fonctionnent dans des processus protégés contre les modifications mémoire. Cette protection permet de rendre l’expérience de jeu exempte d’attaques perpétrées par les aimbots ou autres speedhack, notamment, lors des sessions de jeux opposant plusieurs joueurs en ligne.

    Qu’en pensez-vous ?
    Avec mon Ergodox Infinity, j'ai programmé toute une série de macros qui sont à l'intérieur du clavier (pour faire simple), et je peux faire tout ce que je veux au clavier (y compris déplacer la souris) sans que techniquement, l'ordinateur puisse savoir si c'est un être humain ou pas : il reçoit des vrais codes de touche comme si un humain tapait, des vrais déplacements souris comme si l'humain déplaçait une souris, et il est techniquement impossible de distinguer si c'est un être humain ou une machine.

    Windows essaie de nous "enfermer" dans un système totalement débile que n'importe qui peut très facilement contourner. Donc ça ne sert à rien à part polluer la vie de l'utilisateur, c'est le même principe que plein d'autres choses :
    - les antivirus : ils font ramer le PC pour 10 pékins qui ont cliqué sur "oui" en voulant installer le crack pour Photoshop et qui ont installé un virus
    - une nationale chez moi : on est passé de 110 à 90 sur une petite portion, puis 90 sur les 3/4 et maintenant 90 partout pour 4 crétins qui roulaient à 150 et qui ont eu un accident sûrement parce qu'ils utilisaient leur mobile en conduisant. 4 crétins qui pourrissent, et vont pourrir, la vie de milliers d'autres personnes tous les jours
    - même chose pour Windows cheat : 0,00001 % de la population triche et on va installer un programme supplémentaire qui va tout espionner en permanence et ralentir le PC à cause d'une petite dizaine de ******.

    D'un autre point de vue, Microsoft voit que presque tous les nouveaux jeux sont compatibles Linux et Windows, et essaie de trouver une solution pour éviter que les utilisateurs switchent définitivement sur Linux (non c'est pas un troll, c'est un constat).
  • LuNaTiC93
    Membre à l'essai
    L'API fonctionnera sur la machine donc au final rien n'empêchera quelqu'un de modifier la mémoire de l'API en temps réel et donc de désactiver cette protection ou faire croire au jeux qu'elle est activée, à partir de là on pourra à nouveau éditer la mémoire autant qu'on veut ou la lire pour faire des cheats engine ( ESP, Aimbot, Wallhack... )
  • Je savais qu'il y a des "Games Tweaker" qui lance le jeu et manipule la mémoire, ou "launcher" qui font parfois la même chose que le "Game Tweaker" mais qui peut aussi retirer/simuler des sécurités.

    Donc surement "un truc" principalement pour les applications du Windows Store, bien que Google Play ai aussi son lot de Game Tweaker...

    XBOX... c'est vraiment étrange, mais il semblerait que cela ne soit pas impossible...

    La signature binaire change ou il y a une caractéristique spéciale du binaire compilé ? (scan de la part Windows ?)

    [spoiler]
    Quand administrateur ne sera plus un utilisateur, mais seulement un groupe et que le nom ou compte d'administrateur sera demandé avant installation de Windows, alors je crois bien qu'ils seront sur la bonne voie... Tous les fichiers installer sur le PC sont à moi, l'administrateur, si je crée un autre compte administrateur et que je supprime le précédent, les fichiers n'appartiennent pas au nouveau compte mais à celui qui a été supprimer... Pourtant ces fichiers lui appartiennent toujours, comme ci Windows affiche l'historique du point de création sans l'historique du parcours...

    MS cherche du monde en intérim ou en stage ?
    [/spoiler]
  • RyzenOC
    Inactif
    Il me semblait que (la majorité) des bots faisait de la reconnaissance d'image et qu'ils modifiaient simplement la position de la souris.
    Des bots modifiant la mémoire ou des paquets réseaux cela me semble plus rare quand meme non ?
  • Tu pense à des chercheurs en particulier ?
    Ceux dans leurs labos à faire des IA jouer aux jeux vidéo ( contre d'autres IA ?) ?
  • LittleWhite
    Responsable 2D/3D/Jeux
    D'un autre point de vue, Microsoft voit que presque tous les nouveaux jeux sont compatibles Linux et Windows, et essaie de trouver une solution pour éviter que les utilisateurs switchent définitivement sur Linux (non c'est pas un troll, c'est un constat).
    En effet, en ajoutant une API sur laquelle les jeux reposent, c'est aussi faire en sorte que le jeu soit moins multiplateforme et moins portable (utilisation de code spécifique + reposer sur un mécanisme présent que sur une seule plateforme).

    - même chose pour Windows cheat : 0,00001 % de la population triche et on va installer un programme supplémentaire qui va tout espionner en permanence et ralentir le PC à cause d'une petite dizaine de ******.
    Oui, mais il ne faut pas oublier que d'autres jeux ont déjà nécessité ce genre d'outils (Punkbusters, si je me rappelle bien est l'un d'entre eux).