
Serveur Web d'Exploit PS5 sur un Raspberry Pi Alimenté par le Port USB de la PS5
Utilisez Raspberry Pi OS Lite 64-bit, Bookworm ou plus récent avec NetworkManager. Une carte SD de 64 Go offre amplement d'espace. Cela exécute l'hôte Python existant ; ne flashez pas le binaire ESP32 sur le Pi ou sa carte SD.
Le Pi crée un réseau Wi-Fi pour la PS5. Son serveur DHCP attribue à la console
une adresse IP et lui indique d'utiliser le Pi pour le DNS. Le DNS résout
manuals.playstation.net vers 192.168.4.1, où les serveurs Python servent ce
projet en HTTP et HTTPS. L'ouverture du Guide de l'utilisateur de la PS5 charge la page locale.
L'installateur copie le site vers /home/ps5, installe ses dépendances,
génère un certificat TLS auto-signé local et crée les services systemd.
Il démarre l'hôte à la fin de l'installation et l'active à chaque démarrage ;
vous n'avez pas besoin de laisser un terminal ou une session SSH ouverte.
Vous avez besoin d'un Raspberry Pi avec Wi-Fi compatible point d'accès, d'une carte SD avec Raspberry Pi OS, d'une alimentation adaptée et d'un accès Internet pendant l'installation. Utilisez Ethernet pour la configuration car le Wi-Fi intégré du Pi devient le point d'accès. Réglez le pays Wi-Fi sur US si vous utilisez le Pi aux États-Unis.
Clonez ce dépôt sur le Pi, puis exécutez l'installateur via SSH Ethernet ou une console locale :
sudo apt-get update
sudo apt-get install -y git
git clone https://github.com/flex36ty/ps5-pihost.git ~/ps5-selfhost
cd ~/ps5-selfhost
sudo bash setup-pi5.sh
Malgré son nom de fichier, l'installateur vérifie les capacités Wi-Fi plutôt que d'exiger un Pi 5. Les autres modèles n'ont pas été vérifiés sur matériel. Ce dépôt contient uniquement l'installation par script.
Les instructions d'archive ci-dessous s'appliquent si vous avez reçu le tar.gz packagé séparément. Sinon, téléchargez le ZIP du dépôt, extrayez-le et téléversez son contenu sur le Pi.
Utilisez Raspberry Pi Imager pour installer Raspberry Pi OS. Configurez un nom d'utilisateur,
un mot de passe et SSH, et définissez votre pays Wi-Fi réel (ou utilisez sudo raspi-config
après le démarrage). Connectez Ethernet pour l'installation et l'accès à distance si possible.
Activez SSH dans Imager, ou exécutez ceci depuis un terminal sur le Pi :
sudo systemctl enable --now ssh
hostname -I
Depuis Windows PowerShell, connectez-vous en utilisant votre nom d'utilisateur et l'adresse IP Ethernet
du Pi, par exemple ssh [email protected].
Utilisez les mêmes identifiants pour SFTP sur le port 22 ; la connexion root n'est pas requise.
Téléversez ps5-pi5-selfhost.tar.gz depuis le dossier releases du projet vers le
dossier personnel de votre utilisateur Pi via SFTP. Extrayez et installez-le :
mkdir -p ~/ps5-selfhost
tar -xzf ~/ps5-pi5-selfhost.tar.gz -C ~/ps5-selfhost --strip-components=1
cd ~/ps5-selfhost
sudo bash setup-pi5.sh
L'archive contient un dossier de premier niveau, donc --strip-components=1 place
l'installateur directement dans ~/ps5-selfhost. Si vous téléversez le projet entier
à la place, exécutez l'installateur depuis le dossier contenant setup-pi5.sh.
Vous pouvez éventuellement choisir un autre nom/mot de passe :
sudo bash setup-pi5.sh --ssid PS5-Host --password 'YourChosenPassword'
La configuration démarre tous les services immédiatement et les active à chaque démarrage. Exécutez la configuration via SSH Ethernet ou un clavier/écran local : l'activation convertit le Wi-Fi intégré en point d'accès et déconnecte une session SSH utilisant ce Wi-Fi. Internet est nécessaire pour l'installation des paquets, pas pour l'hébergement normal. L'activation au démarrage réessaie pendant l'initialisation de l'adaptateur Wi-Fi. La configuration vérifie tous les services et affiche des diagnostics si le démarrage échoue.
Pour une installation existante, arrêtez-la avant de relancer la configuration :
sudo systemctl stop ps5-host.target
cd ~/ps5-selfhost
sudo bash setup-pi5.sh
ps5-host.target regroupe quatre services. C'est une cible systemd, pas une session
de terminal. La configuration l'active sous multi-user.target et la démarre immédiatement.
| Unité | Rôle |
|---|---|
ps5-hotspot.service | Active le point d'accès Wi-Fi NetworkManager ; réessaie pendant l'initialisation de l'adaptateur |
ps5-dns.service | Fournit le DNS sur le port 53 et le DHCP sur le port UDP 67 |
ps5-http.service | Exécute /home/ps5/serve.py sur le port TCP 80 |
ps5-https.service | Exécute /home/ps5/serve_https.py sur le port TCP 443 |
Les deux serveurs Python s'exécutent en même temps. Le DNS attend le démarrage du point d'accès. Les processus web et DNS redémarrent en cas d'échec. L'arrêt de la cible arrête les quatre services ; son redémarrage les redémarre ensemble.
Vérifiez l'activation au démarrage et l'état des services :
systemctl is-enabled ps5-host.target
systemctl status ps5-host.target ps5-hotspot ps5-dns ps5-http ps5-https --no-pager
La cible doit être enabled, le point d'accès active (exited), et les services DNS et
web active (running). Le point d'accès utilise une commande d'activation one-shot,
donc active (exited) est normal. Redémarrez et répétez ces vérifications pour confirmer le
démarrage au boot sur votre Pi.
| Paramètre | Valeur |
|---|---|
| Réseau Wi-Fi | PS5-Host |
| Mot de passe | ps5offline (sauf modification pendant la configuration) |
| Adresse IP | Automatique |
| DNS | Automatique |
| Nom d'hôte DHCP | Ne pas spécifier |
| MTU / Proxy | Automatique / Ne pas utiliser |
| IP du point d'accès Pi | 192.168.4.1 |
| Pool DHCP | 192.168.4.100–192.168.4.150, bail de 12 heures |
Ouvrez le Guide de l'utilisateur et passez l'invite de certificat local si elle est proposée. Le DNS dirige manuals.playstation.net vers le Pi ; HTTPS gère la requête du guide. R2 envoie nanoDNS, ShadowMount Plus, puis kstuff. Le point d'accès n'a pas de partage Internet configuré, donc le test de connexion Internet/PSN peut échouer alors que la page locale fonctionne. Ethernet reste disponible pour administrer le Pi.
Une fois que l'exploit atteint le chargeur ELF, R2 envoie ces fichiers dans l'ordre :
payloads/nanodns.elfpayloads/shadowmountplus.elfpayloads/kstuff.elfConservez ces noms de fichiers et cette casse exacts. L'ordre est défini dans
src/kexp.js ; ajouter un autre fichier ELF au dossier ne l'ajoute pas automatiquement
à la séquence R2. etaHEN.elf ne fait pas partie de cette séquence.
sudo systemctl start ps5-host.target
sudo systemctl stop ps5-host.target
sudo systemctl restart ps5-host.target
sudo systemctl status ps5-hotspot ps5-dns ps5-http ps5-https
sudo journalctl -u ps5-hotspot -u ps5-dns -u ps5-https -f
Depuis un ordinateur connecté au point d'accès :
nslookup manuals.playstation.net 192.168.4.1
curl -k https://192.168.4.1/
Utilisez /home/ps5 pour les fichiers web et les payloads. Redémarrez les services web après avoir modifié
des fichiers Python ; fermez/rouvrez le guide PS5 après avoir modifié du JavaScript. Pour réinstaller,
arrêtez la cible et relancez cet installateur. N'exécutez pas le setup-ps5.sh générique du conteneur
sur cette installation de point d'accès : il configure un service DNS différent.