1
Désassemblage de l'EBOOT (Ghidra)
Décompilation du binaire client PowerPC pour comprendre comment le jeu se connecte aux serveurs et identifier les fonctions réseau critiques.
2
Redirection DNS (dnsmasq)
Mise en place d'un serveur DNS personnalisé sur VM Kali pour intercepter les requêtes Naughty Dog et les rediriger vers mon infrastructure.
3
Serveur HTTP de remplacement
Script Python sur le port 80 qui répond aux requêtes HTTP de la PS3 à la place des serveurs Naughty Dog, en lui servant les fichiers de configuration nécessaires au lancement du multijoueur.
4
Cassage du chiffrement Blowfish + HMAC
Identification de l'algorithme de chiffrement et extraction des deux clés depuis le binaire. Modification de l'IP serveur dans le fichier de config et recalcul du HMAC d'intégrité — étape clé pour que les autres joueurs n'aient qu'à configurer leur DNS.
5
Exploration mémoire (ProDG Debugger + Cheat Engine)
Utilisation du debugger officiel PS3 (ProDG) sur console en custom firmware, et de Cheat Engine sur l'émulateur RPCS3, pour tenter d'extraire les clés de chiffrement runtime via breakpoints et scan mémoire. Méthode partiellement aboutie — utile pour tracer les échanges de paquets, mais l'extraction directe de la clé n'a pas pu être finalisée.
6
Analyse des flux TCP (Wireshark)
Capture du trafic réseau et identification de 3 services : 6300 (auth), 6301 (invitations), 6303 (matchmaking). Reverse du format binaire des paquets : header 8 bytes Big Endian, opcode, payload variable.
7
Mapping des opcodes (Ghidra + Wireshark)
Reverse engineering d'une vingtaine d'opcodes (0x012F → 0x0145) couvrant la création de room, le matchmaking, le lobby et le lancement de partie. Corrélation entre code décompilé et trafic capturé.
8
Implémentation du serveur (Python)
Architecture multi-thread, un thread par port, gestion d'état par session. Plus de 50 itérations pour atteindre le matchmaking complet et le lancement de partie.
9
Mise en production VPS Oracle Cloud (en cours)
Déploiement sur un VPS public (offre Free Tier ARM) pour rendre le service accessible à toute la communauté — un simple changement DNS sur la PS3 suffira pour jouer.