Objectifs du TP :
Comprendre le fonctionnement des jeux en réseau.
Analyser et manipuler le client de jeu pour contourner certaines protections.
Utiliser des outils de hacking pour altérer le comportement du jeu.
Prérequis :
Connaissance de base en C/C++ et en reverse engineering.
Familiarité avec les outils de débogage tels que Ghidra, IDA, ou Radare2.
Environnement Linux avec des outils comme Wireshark, Cheat Engine, etc.
Matériel requis :
Une version de Pwn Adventure 3 préalablement installée (disponible sur GitHub).
Outils : Ghidra, Cheat Engine, Wireshark, et un compilateur C/C++.
Modes de jeu :
Pwn Adventure 3 peut être joué en deux modes : local et en réseau. En mode local, toutes les interactions se font sur votre machine. En mode réseau, vous pouvez jouer avec d’autres joueurs et interagir avec un serveur distant.
Lancement d’un serveur Docker de Pwn Adventure 3 :
Pour lancer un serveur Pwn Adventure 3 à l’aide de Docker, suivez les étapes suivantes :
Assurez-vous d’avoir Docker installé sur votre machine.
Exécutez la commande suivante pour lancer le serveur :
docker run -d -p 3333:3333 -p 8080:8080 pwnadventure3/server
Le port
3333
est utilisé pour les connexions des clients de jeu.Le port
8080
est utilisé pour l’interface d’administration du serveur.
Partie 1 : Analyse de la Communication en Réseau
1. Lancement et Capture des Paquets
Lancez Pwn Adventure 3 et ouvrez Wireshark pour capturer les paquets.
Filtrez les paquets liés au jeu (par exemple, en utilisant le port TCP spécifique du jeu).
Essayez de comprendre le type de données qui est échangé entre le client et le serveur.
Question : Quels types de paquets sont échangés ? Pouvez-vous identifier les paquets de connexion et ceux qui contiennent des informations de jeu ?
2. Manipulation des Paquets
Utilisez un outil comme
mitmproxy
ouWireshark
pour modifier certains paquets en cours de jeu.Tentez de modifier la quantité d’or envoyée au serveur, par exemple.
Note : Assurez-vous de travailler en mode local pour ne pas enfreindre les règles d’éthique.
Partie 2 : Analyse Statique et Dynamique du Code
1. Analyse avec Ghidra
Ouvrez le fichier exécutable de Pwn Adventure 3 dans Ghidra.
Essayez d’identifier les fonctions liées à la gestion des objets (par exemple, l’or ou la santé du joueur).
Notez les adresses mémoire qui semblent importantes pour la manipulation des ressources.
2. Utilisation de Cheat Engine
Lancer Cheat Engine et attachez-le au processus du jeu.
Recherchez la valeur actuelle de l’or de votre personnage.
Modifiez cette valeur et observez le comportement du jeu.
Question : Est-ce que la modification est persistante ? Pourquoi ou pourquoi pas ?
Partie 3 : Contournement de Mécanismes de Protection
1. Analyse des Protections
Identifiez les protections mises en place pour empêcher la triche (vérification de l’intégrité, checksum, etc.).
Utilisez IDA ou Ghidra pour repérer des fonctions qui pourraient vérifier l’intégrité des données.
2. Contournement
En utilisant un débogueur, placez des points d’arrêt (breakpoints) sur ces fonctions.
Essayez de contourner ces vérifications, par exemple en changeant les conditions de saut (jump).
Question : Quel effet a ce contournement sur le jeu ?
Partie 4 : Exploitation Avancée – Création de Cheats
1. Création d’un Mod Menu
Utilisez vos connaissances en C++ pour créer un petit programme qui interagit avec le processus du jeu.
Par exemple, créez une interface qui permet de modifier la quantité d’or, la santé, ou de téléporter le joueur.
Implémentez des hooks pour rediriger certaines fonctions du jeu vers votre propre code.
2. Test et Validation
Testez votre mod menu en jeu et assurez-vous que toutes les fonctionnalités fonctionnent comme prévu.
Question : Quels problèmes avez-vous rencontrés lors de l’injection de code ? Comment les avez-vous résolus ?
Partie 5 : Réflexion éthique
Discussion :
Quelles sont les implications éthiques de la création de cheats pour des jeux vidéo ?
Dans quel contexte l’exploitation d’un logiciel est-elle acceptable ?
Rédigez un paragraphe expliquant pourquoi il est important de respecter les règles d’éthique dans ce type de pratique.
Conclusion
Ce TP vous a permis d’explorer les rouages internes d’un jeu vidéo, de comprendre les communications réseau, et d’apprendre à manipuler le code pour en altérer le comportement. Ces compétences sont précieuses pour comprendre les mécanismes de sécurité et les potentielles vulnérabilités d’un logiciel, mais doivent être utilisées avec responsabilité et éthique.