Tricher dans les jeux sous Linux
11
janvier
Cet article a été publié il y a 3 ans 5 mois 8 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.Avant tout chose l’équipe de Bordel de Nerd vous souhaite à tous une excellente année 2010
Pour bien commencer cette nouvelle année j’ai décidé de partager avec vous une technique qui va vous permettre de tricher à un jeu sous Linux en modifiant directement en mémoire la variable qui contient votre score par exemple.
Pour pouvoir modifier la mémoire nous allons utiliser un logiciel libre nommé scanmem disponible à cette adresse http://taviso.decsystem.org/scanmem.html
Comment s’y prendre pour obtenir un score ou un nombre de vies aussi exagéré que sur le dessin de samoustique ci-dessus ?
Prenons l’exemple de KBlocks (clone de tetris sous KDE), il suffit de lancer le jeu et de retrouver son PID.
Soit on lance le jeu avec la commande kblocks & (ce qui affiche le PID), soit on le retrouve en faisant un ps ax | grep kblocks.
Le plus simple étant d’utiliser la commande « pidof » qui retrouve à l’aide de son nom le PID d’un processus.
Donc une fois le jeu lancé on utilise la commande suivante :
scanmem --pid `pidof kblocks` |
Ce qui nous donne
Pour commencer nous allons devoir chercher où se trouve en mémoire la variable à modifier (celle du score par exemple).
Nous venons de commencer la partie et le score est à 0,nous recherchons donc cette valeur. (0 + [ENTREE])
info: 203/218 searching 0xb634f000 - 0xb6356000...........ok info: 204/218 searching 0xb6cc4000 - 0xb6ce5000...........ok info: 205/218 searching 0xb6ce5000 - 0xb6ce7000...........ok info: 206/218 searching 0xb6d38000 - 0xb6d3a000...........ok info: 207/218 searching 0xb6f62000 - 0xb6f68000...........ok info: 208/218 searching 0xb6f68000 - 0xb6f6a000...........ok info: 209/218 searching 0xb71df000 - 0xb71ea000...........ok info: 210/218 searching 0xb7235000 - 0xb7237000...........ok info: 211/218 searching 0xb75f9000 - 0xb7611000...........ok info: 212/218 searching 0xb7611000 - 0xb7612000...........ok info: 213/218 searching 0xb7725000 - 0xb772c000...........ok info: 214/218 searching 0xb772f000 - 0xb7730000...........ok info: 215/218 searching 0xb775a000 - 0xb775b000...........ok info: 216/218 searching 0xb7779000 - 0xb777a000...........ok info: 217/218 searching 0xbff94000 - 0xbffa7000...........ok info: 218/218 searching 0xbffa7000 - 0xbffa9000...........ok info: we currently have 84376 matches. 84376> |
Il y a donc 84376 variables dans la mémoire utilisée par MBlocks qui sont à 0 (normal c’est le début).
Nous allons donc faire une ligne pour faire monter le score et continuer jusqu’à ce qu’il n’y ai qu’une seule variable égale au nombre que l’on recherche.
J’ai fait deux lignes mon score est de 80
84376> 80 info: we currently have 12 matches. 12> |
Il ne reste plus que 12 variables avec cette valeur, le but approche.
12> 120 info: we currently have 1 matches. info: match identified, use "set" to modify value. info: enter "help" for other commands. 1> |
Il n’y a qu’une seule variable ayant pour valeur 120, il s’agit donc forcément de notre score que nous allons pouvoir modifier avec la commande set « nouveau score ».
(il ne reste plus qu’à refaire une petite ligne pour actualiser le score).
Voici donc comment s’y prendre pour obtenir un score de 1040 en deux minutes, simple non ?
Scanmem fonctionne bien entendu avec la plupart des applications.



salam hhhhhh