Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
scanmem [Le 27/12/2009, 12:04] – créée Polarman | scanmem [Le 01/09/2010, 15:40] (Version actuelle) – ajout balise code, rediriger vers liens respectifs wido | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | |||
+ | ====== Scanmem : modifier la mémoire à chaud ====== | ||
+ | |||
+ | **Scanmem** permet de modifier la mémoire à chaud, c'est à dire que l'on peut modifier une variable du système. Cela peut être utiliser pour « tricher » ou changer le comportement d’un jeu. | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | ===== Installation ===== | ||
+ | |||
+ | Il suffit d' | ||
+ | |||
+ | ===== Utilisation ===== | ||
+ | |||
+ | Pour l' | ||
+ | |||
+ | Lançons le jeu, et récupérons son pid : | ||
+ | |||
+ | $ gnometris & | ||
+ | [1] 30814 | ||
+ | |||
+ | Démarrons scanmem avec comme paramètre le pid de Gnometris : | ||
+ | |||
+ | sudo scanmem 30814 | ||
+ | |||
+ | NB : Il faut être root pour lire et écrire la mémoire des autres programmes lancés | ||
+ | |||
+ | On obtient un joli prompt : | ||
+ | |||
+ | 0> | ||
+ | |||
+ | Il va falloir tout d’abord trouver où se trouve en mémoire la variable à modifier (celle qui contient le score courant). Pour cela, c’est très simple, vu que le score est affiché à l’écran, il suffit d’indiquer à scanmem sa valeur. Pour l’instant, | ||
+ | |||
+ | 0> 0 | ||
+ | info: 01/126 searching | ||
+ | info: 02/126 searching | ||
+ | … | ||
+ | info: 125/126 searching 0xe83f9000 - 0xe83fa000.ok | ||
+ | info: 126/126 searching 0xdab4b000 - 0xdab67000.ok | ||
+ | info: we currently have 12352024 matches. | ||
+ | 12352024> | ||
+ | |||
+ | Il y a donc 12352024 variables dans la mémoire utilisée par Gnometris qui sont à 0 (pas étonnant). | ||
+ | |||
+ | Je joue un peu, histoire de faire évoluer le score… tac tac tac tac… Voilà, j’ai 100 points (j’ai fait 2 lignes), je tape donc 100 : | ||
+ | |||
+ | 12352024> | ||
+ | info: we currently have 36 matches. | ||
+ | 36> | ||
+ | |||
+ | Il y a 36 variables qui étaient à 0 tout à l’heure et qui sont à 100 maintenant. Je rejoue, je fais 1 ligne, j’ai 140 points, je tape donc 140 : | ||
+ | |||
+ | 36> 140 | ||
+ | info: we currently have 1 matches. | ||
+ | info: match identified, use " | ||
+ | info: enter " | ||
+ | |||
+ | Voilà, j’ai trouvé la variable qui contient le score, maintenant je peux la modifier : | ||
+ | |||
+ | 1> set 12345678 | ||
+ | info: setting *0x22e38f0 to 0xbc614e... | ||
+ | |||
+ | Rien ne se passe dans le jeu, c’est normal : pour Gnometris, le score n’a pas pu changer, le label de l’interface graphique contenant le score n’a donc pas été rafraîchi. Il suffit de gagner quelques points pour s’apercevoir que la modification a bien été prise en compte : | ||
+ | |||
+ | Ça fonctionne bien évidemment sur tous les programmes, mais c’est plus intéressant pour les jeux :-) | ||
+ | |||
+ | ===== Interface graphique ===== | ||
+ | |||
+ | Pour avoir une interface graphique, il vous faut avoir au minimum la version 0.08. | ||
+ | |||
+ | [[: | ||
+ | |||
+ | Pour Ubuntu 10.04 [[:Lucid]] Lynx : | ||
+ | |||
+ | < | ||
+ | |||
+ | Versions antérieures: | ||
+ | |||
+ | < | ||
+ | < | ||
+ | |||
+ | [[: | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | Lancer l' | ||
+ | |||
+ | gameconqueror | ||
+ | |||
+ | ===== Liens ===== | ||
+ | |||
+ | Site: [[http:// | ||
+ | |||
+ | Information issue de ce [[http:// |