Accueil > > > CRÉATION D'UN TRAINER POUR CHEATER : ECRITURE DANS UN PROCESS.
CRÉATION D'UN TRAINER POUR CHEATER : ECRITURE DANS UN PROCESS.
Information sur la source
Description
Voici mon premier tutorial sur le GameHacking,
Il est très simple mais il introduit les bases.
Le tutorial est scindé en trois parties :
1) Création d'un FakeGame.
2) Désasemblage.
3) Création du trainer.
Bonne lecture ! ;)
Source
- Trainer et Fake Game créer par Krust
- ====================================
-
- Les trainers sont des programmes qui "Hack" les jeux essentielement afin d'avoir vie infinies, munitions, etc.
- Voici un exemple de comment créer votre propre Cheat (Cheat = trainer).
-
- 1)Création du Fake Game (émulation d'un jeu).
- ---------------------------------------------
-
- NE dite pas, ouais il sert à rien ton jeu car Oui effectivement il sert à rien.
- Le but est d'arrêter le decende des points de vies, imaginons que les ennemis tirent toutes les 300ms sur notre héro...
- Donc voilà c'est un simple programme qui affiche les pv qui diminue jusqu'à arrivé à Zero, le moment ou le hero meurt.
- Si vous ne comprenez pas sa conception, il n'est pas nécéssaire de continuer à lire cette exemple.
-
- 2)Désasemblage du Fake Game.
- ----------------------------
-
- Voilà, nous sommes devant un jeu où on ne sait pas gagné, voilà qui est embêtant,...
- Mais nous sommes assez malin que pour réussir ce jeu.
-
- Premièrement on désasemble le programme avec un désasembleur (n'importe lequel fera l'affaire).
- Prenez par exemple Windasm 9 qui est bien pour débuter.
- On ouvre l'exe et on attend qu'il génere le code en assembleur.
-
- Voilà le listing est affiché (voir Fake_Game-DASM.txt qui est le fichier Désasembler sauver en fichier texte)
- Le code est maintenant lisible !
-
- J'expliquerais les étapes du débugage plus tard, dans un autre tutorial.
-
- Mais si on se débrouille on tombe sur ces lignes de code :
-
- :00401079 837DFC00 cmp dword ptr [ebp-04], 00000000 // On compare l'address pointer par Ebp+4 à zero (notre int i) -notre while()
- :0040107D 765C jbe 004010DB // Si i <=0 alors on saute vers 004010DB -
- :0040107F 8B4DFC mov ecx, dword ptr [ebp-04] // Aussi non, on met dans le regsitre ecx le contenu de notre i
- :00401082 83E901 sub ecx, 00000001 // On soustrait 1 à ecx
- :00401085 894DFC mov dword ptr [ebp-04], ecx // On met ecx à la place de la valeur actuelle de i. (i=i-1)
-
- Il y a maintenant plusieurs possibilitées pour éviter de perdre des vies (i).
- LA plus simple est sans doute de NOPer l'instruction "sub ecx,00000001" qui est codé sur 3 Bytes.
- C-a-d, de mettre l'instruction NUL (NOP, 0x90) à la place.
- Comme elle est codé sur 1byte, il va faloir en mettre 3 (NOP NOP NOP) :p.
- le code patché sera alors :
-
- :00401079 837DFC00 cmp dword ptr [ebp-04], 00000000 // On compare l'address pointer par Ebp+4 à zero (notre int i)
- :0040107D 765C jbe 004010DB // Si i <=0 alors on saute vers 004010DB
- :0040107F 8B4DFC mov ecx, dword ptr [ebp-04] // Aussi non, on met dans le regsitre ecx le contenu de notre i
- :00401082 90 NOP // On fait rien
- :00401083 90 NOP // On fait rien
- :00401084 90 NOP // On fait rien
- :00401085 894DFC mov dword ptr [ebp-04], ecx // On met ecx à la place de la valeur actuelle de i. (i=i)
-
- Et voilà i ne sera plus désacrémenté ! et donc nous aurons toujours le même nombre de vies ;).
- Avant de faire un trainer, il est préférable de tester notre patch, pour ça on met un BreakPoint sur notre ligne 00401082.
- On lance le processus dans le debuger et quand il pop, on patch notre code en insérant les 3 NOPs.
- Victoire ça marche !
-
- On va pouvoir passer à la programmation de notre trainer.
-
- 3)Création du trainer.
- ----------------------
-
- Les étapes:
-
- 1) Trouver notre handle de fenêtre. FindWindow(ClassName,WindowsText)
- 2) Chercher son process ID par son handle. GetWindowThreadProcessId(Handle,&ProcessID)
- 3) Ouvire le process OpenProcess(AccessType,NULL,ProcessID)
- 4) écrire dans la mémoire WriteProcessMemory (ProcessID, AddresToModify, PATCH, NbByteToWrite ,&NbWrittenByte)
-
- Regardez dans la source, elle est très bien commentée.
-
-
- 4)The End.
- ----------
-
- Voilà, c'est fini, le trainer a été créer et il marche !
-
-
- Si le trainer fonctionne correctement, vous devriez avoir ceci qui s'affiche :
-
- Game Hack V1.0 By Krust
- -----------------------
-
- Appuyez sur une touche pour continuer...
-
- [+] Game Found ! :)
- -->Finding Process ID...
- [+] Process Id found : 0x000009CC On Thread ID : 5960
- -->Opening Process...
- [+] Process successfuly opened!
- -->Writting Process...
- [+] Game Patched!
- -->You should Have Unlimited Live now !
-
- Appuyez sur une touche pour continuer...
-
-
- Krust, le 25 juin 2004.
Trainer et Fake Game créer par Krust
====================================
Les trainers sont des programmes qui "Hack" les jeux essentielement afin d'avoir vie infinies, munitions, etc.
Voici un exemple de comment créer votre propre Cheat (Cheat = trainer).
1)Création du Fake Game (émulation d'un jeu).
---------------------------------------------
NE dite pas, ouais il sert à rien ton jeu car Oui effectivement il sert à rien.
Le but est d'arrêter le decende des points de vies, imaginons que les ennemis tirent toutes les 300ms sur notre héro...
Donc voilà c'est un simple programme qui affiche les pv qui diminue jusqu'à arrivé à Zero, le moment ou le hero meurt.
Si vous ne comprenez pas sa conception, il n'est pas nécéssaire de continuer à lire cette exemple.
2)Désasemblage du Fake Game.
----------------------------
Voilà, nous sommes devant un jeu où on ne sait pas gagné, voilà qui est embêtant,...
Mais nous sommes assez malin que pour réussir ce jeu.
Premièrement on désasemble le programme avec un désasembleur (n'importe lequel fera l'affaire).
Prenez par exemple Windasm 9 qui est bien pour débuter.
On ouvre l'exe et on attend qu'il génere le code en assembleur.
Voilà le listing est affiché (voir Fake_Game-DASM.txt qui est le fichier Désasembler sauver en fichier texte)
Le code est maintenant lisible !
J'expliquerais les étapes du débugage plus tard, dans un autre tutorial.
Mais si on se débrouille on tombe sur ces lignes de code :
:00401079 837DFC00 cmp dword ptr [ebp-04], 00000000 // On compare l'address pointer par Ebp+4 à zero (notre int i) -notre while()
:0040107D 765C jbe 004010DB // Si i <=0 alors on saute vers 004010DB -
:0040107F 8B4DFC mov ecx, dword ptr [ebp-04] // Aussi non, on met dans le regsitre ecx le contenu de notre i
:00401082 83E901 sub ecx, 00000001 // On soustrait 1 à ecx
:00401085 894DFC mov dword ptr [ebp-04], ecx // On met ecx à la place de la valeur actuelle de i. (i=i-1)
Il y a maintenant plusieurs possibilitées pour éviter de perdre des vies (i).
LA plus simple est sans doute de NOPer l'instruction "sub ecx,00000001" qui est codé sur 3 Bytes.
C-a-d, de mettre l'instruction NUL (NOP, 0x90) à la place.
Comme elle est codé sur 1byte, il va faloir en mettre 3 (NOP NOP NOP) :p.
le code patché sera alors :
:00401079 837DFC00 cmp dword ptr [ebp-04], 00000000 // On compare l'address pointer par Ebp+4 à zero (notre int i)
:0040107D 765C jbe 004010DB // Si i <=0 alors on saute vers 004010DB
:0040107F 8B4DFC mov ecx, dword ptr [ebp-04] // Aussi non, on met dans le regsitre ecx le contenu de notre i
:00401082 90 NOP // On fait rien
:00401083 90 NOP // On fait rien
:00401084 90 NOP // On fait rien
:00401085 894DFC mov dword ptr [ebp-04], ecx // On met ecx à la place de la valeur actuelle de i. (i=i)
Et voilà i ne sera plus désacrémenté ! et donc nous aurons toujours le même nombre de vies ;).
Avant de faire un trainer, il est préférable de tester notre patch, pour ça on met un BreakPoint sur notre ligne 00401082.
On lance le processus dans le debuger et quand il pop, on patch notre code en insérant les 3 NOPs.
Victoire ça marche !
On va pouvoir passer à la programmation de notre trainer.
3)Création du trainer.
----------------------
Les étapes:
1) Trouver notre handle de fenêtre. FindWindow(ClassName,WindowsText)
2) Chercher son process ID par son handle. GetWindowThreadProcessId(Handle,&ProcessID)
3) Ouvire le process OpenProcess(AccessType,NULL,ProcessID)
4) écrire dans la mémoire WriteProcessMemory (ProcessID, AddresToModify, PATCH, NbByteToWrite ,&NbWrittenByte)
Regardez dans la source, elle est très bien commentée.
4)The End.
----------
Voilà, c'est fini, le trainer a été créer et il marche !
Si le trainer fonctionne correctement, vous devriez avoir ceci qui s'affiche :
Game Hack V1.0 By Krust
-----------------------
Appuyez sur une touche pour continuer...
[+] Game Found ! :)
-->Finding Process ID...
[+] Process Id found : 0x000009CC On Thread ID : 5960
-->Opening Process...
[+] Process successfuly opened!
-->Writting Process...
[+] Game Patched!
-->You should Have Unlimited Live now !
Appuyez sur une touche pour continuer...
Krust, le 25 juin 2004.
Conclusion
Voilà j'esper que ça vous aura plus,
j'ai compilé tout ça avec VC++ 6 sans problème.
je pense que c'est un tutorial de qualité même si il est assez superficiel sur la 2ème étape (debug).
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
MATRICE TEMPLATEMATRICE TEMPLATE par hjr2610
Cliquez pour lire la suite par hjr2610 RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|