
PS5のUSBポートで駆動するRaspberry Pi上のPS5 Exploit Webサーバー
Raspberry Pi OS Lite 64-bit、Bookworm 以降を NetworkManager と共に使用してください。 64 GB の SD カードで十分な容量があります。これは既存の Python ホストを実行します。ESP32 バイナリを Pi やその SD カードに書き込まないでください。
Pi は PS5 用の Wi-Fi ネットワークを作成します。その DHCP サーバーはコンソールに IP アドレスを割り当て、DNS に Pi を使用するよう指示します。DNS は manuals.playstation.net を 192.168.4.1 に解決し、そこで Python サーバーがこのプロジェクトを HTTP と HTTPS 経由で提供します。PS5 のユーザーズガイドを開くとローカルページが読み込まれます。
インストーラーはサイトを /home/ps5 にコピーし、依存関係をインストールし、ローカルの自己署名 TLS 証明書を生成し、systemd サービスを作成します。インストール完了時にホストを起動し、毎回のブート時に有効化します。ターミナルや SSH セッションを開いたままにする必要はありません。
ホットスポット対応 Wi-Fi を備えた Raspberry Pi、Raspberry Pi OS が入った SD カード、適切な電源、およびインストール中のインターネットアクセスが必要です。Pi 内蔵の Wi-Fi がホットスポットになるため、セットアップには Ethernet を使用してください。米国で Pi を使用する場合は、Wi-Fi の国を US に設定してください。
Pi 上でこのリポジトリをクローンし、Ethernet SSH またはローカルコンソール経由でインストーラーを実行します:
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
ファイル名とは異なり、インストーラーは Pi 5 を要求するのではなく Wi-Fi 機能を確認します。他のモデルはハードウェアで検証されていません。このリポジトリにはスクリプトのインストールのみが含まれています。
以下のアーカイブ手順は、パッケージ化された tar.gz を別途受け取った場合に適用されます。あるいは、リポジトリの ZIP をダウンロードして展開し、その内容を Pi にアップロードしてください。
Raspberry Pi Imager を使用して Raspberry Pi OS をインストールします。ユーザー名、
パスワード、SSH を設定し、実際の Wi-Fi の国を設定します(またはブート後に sudo raspi-config
を使用します)。可能であれば、インストールとリモートアクセスのために Ethernet を接続します。
Imager で SSH を有効にするか、Pi 上のターミナルからこれを実行します:
sudo systemctl enable --now ssh
hostname -I
Windows PowerShell からは、ユーザー名と Pi の Ethernet
IP アドレスを使用して接続します。例えば ssh [email protected] です。
ポート 22 の SFTP にも同じ認証情報を使用します。root ログインは不要です。
プロジェクトの releases フォルダーにある ps5-pi5-selfhost.tar.gz を
SFTP を使用して Pi ユーザーのホームフォルダーにアップロードします。展開してインストールします:
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
アーカイブには最上位フォルダーが含まれているため、--strip-components=1 は
インストーラーを直接 ~/ps5-selfhost に配置します。プロジェクト全体を
アップロードする場合は、setup-pi5.sh を含むフォルダーからインストーラーを実行してください。
オプションで別の名前/パスワードを選択できます:
sudo bash setup-pi5.sh --ssid PS5-Host --password 'YourChosenPassword'
セットアップはすべてのサービスを即座に開始し、毎回のブート時に有効化します。 セットアップは Ethernet SSH またはローカルのキーボード/画面経由で実行してください。有効化は 内蔵 Wi-Fi をホットスポットに変換し、その Wi-Fi を使用している SSH セッションを切断します。 インターネットはパッケージのインストールに必要であり、通常のホスティングには不要です。 ブート時の有効化は Wi-Fi アダプターの初期化中に再試行します。セットアップは すべてのサービスを確認し、起動に失敗した場合は診断情報を出力します。
既存のインストールの場合、セットアップを再実行する前に停止します:
sudo systemctl stop ps5-host.target
cd ~/ps5-selfhost
sudo bash setup-pi5.sh
ps5-host.target は 4 つのサービスをグループ化します。これは systemd ターゲットであり、ターミナル
セッションではありません。セットアップはこれを multi-user.target の下で有効化し、即座に開始します。
| Unit | Purpose |
|---|---|
ps5-hotspot.service | NetworkManager Wi-Fi アクセスポイントを有効化します。アダプターの初期化中に再試行します |
ps5-dns.service | ポート 53 で DNS を、UDP ポート 67 で DHCP を提供します |
ps5-http.service | TCP ポート 80 で /home/ps5/serve.py を実行します |
ps5-https.service | TCP ポート 443 で /home/ps5/serve_https.py を実行します |
両方の Python サーバーは同時に実行されます。DNS はホットスポットの起動を待ちます。 Web と DNS プロセスは失敗時に再起動します。ターゲットを停止すると 4 つすべての サービスが停止し、再起動するとそれらが一緒に再起動します。
ブート時の有効化とサービスの健全性を確認します:
systemctl is-enabled ps5-host.target
systemctl status ps5-host.target ps5-hotspot ps5-dns ps5-http ps5-https --no-pager
ターゲットは enabled、ホットスポットは active (exited)、DNS と
Web サービスは active (running) である必要があります。ホットスポットはワンショット
有効化コマンドを使用するため、active (exited) は正常です。再起動してこれらのチェックを繰り返し、お使いの Pi でのブート
起動を確認してください。
| Setting | Value |
|---|---|
| Wi-Fi network | PS5-Host |
| Password | ps5offline (セットアップ中に変更しない限り) |
| IP address | Automatic |
| DNS | Automatic |
| DHCP hostname | 指定しない |
| MTU / Proxy | Automatic / 使用しない |
| Pi hotspot IP | 192.168.4.1 |
| DHCP pool | 192.168.4.100–192.168.4.150、12 時間リース |
ユーザーズガイドを開き、ローカル証明書のプロンプトが表示された場合はそれを通過してください。 DNS は manuals.playstation.net を Pi に誘導し、HTTPS がガイドリクエストを処理します。 R2 は nanoDNS、ShadowMount Plus、次に kstuff を送信します。ホットスポットにはインターネット共有が設定されていないため、 ローカルページが動作していてもインターネット/PSN 接続テストが失敗することがあります。Ethernet は Pi の管理に引き続き利用できます。
エクスプロイトが ELF ローダーに到達した後、R2 はこれらのファイルを順番に送信します:
payloads/nanodns.elfpayloads/shadowmountplus.elfpayloads/kstuff.elfこれらの正確なファイル名と大文字小文字を維持してください。順序は
src/kexp.js で定義されています。フォルダーに別の ELF ファイルを追加しても、R2
シーケンスに自動的に追加されるわけではありません。etaHEN.elf はこのシーケンスの一部ではありません。
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
ホットスポットに参加しているコンピューターから:
nslookup manuals.playstation.net 192.168.4.1
curl -k https://192.168.4.1/
Web ファイルとペイロードには /home/ps5 を使用します。Python ファイルを変更した後は Web サービスを再起動し、
JavaScript を変更した後は PS5 ガイドを閉じて再度開きます。再インストールするには、
ターゲットを停止してこのインストーラーを再実行します。このホットスポットインストールで汎用コンテナの
setup-ps5.sh を実行しないでください。それは別の DNS サービスを構成します。
インストーラーは専用の NetworkManager プロファイルと専用の
ps5-dns サービスを作成します。Ethernet プロファイルの変更、別のネットワークスタック上への NetworkManager
のインストール、既存の DNS サービスの置き換え、NAT/ファイアウォール
ルールの追加は行いません。別の DNS/DHCP サービスが必要なポートを占有している場合は、まずその
競合を解決してください。ファイアウォールが有効な場合は、ホットスポットインターフェース上でのみ UDP 67、TCP/UDP 53、TCP
80/443 を許可してください。ホストはローカルネットワーク上に保持してください。
ホストを手動で起動する前にこれらのログを収集し、ブート時の失敗が 確認できるようにします:
sudo journalctl -b -u ps5-hotspot.service -u NetworkManager.service --no-pager -n 100
nmcli device status
rfkill list
Wi-Fi の国が設定されていない場合は、sudo raspi-config で設定してください。
デフォルトのインターフェースは wlan0 です。Wi-Fi アダプターが別の名前を使用している場合は、
インストーラーで --interface NAME を使用してください。報告されたエラーを解決した後:
sudo systemctl restart ps5-host.target
有効化を確認し、ブートログを検査します:
systemctl is-enabled ps5-host.target
sudo journalctl -b -u ps5-hotspot -u ps5-dns -u ps5-http -u ps5-https --no-pager -n 100
無効になっている場合は、sudo systemctl enable --now ps5-host.target を実行します。すでに
有効になっている場合、ログが起動失敗を特定します。再度有効化しても
その根本的なエラーは修正されません。更新されたインストーラーには Wi-Fi 有効化の再試行が含まれています。
PS5 の IP と DNS 設定を自動のままにします。PS5-Host に接続している
コンピューターからテストします:
nslookup manuals.playstation.net 192.168.4.1
curl -k https://192.168.4.1/
Windows では、curl.exe -k https://192.168.4.1/ を使用します。DNS は
192.168.4.1 を返し、curl はページ HTML を返す必要があります。PS5 ガイドには HTTPS が必要です。
ポート 80 のテストが成功しただけではポート 443 を検証できません。ここでの -k オプションは
ローカルの自己署名証明書をテストできるようにします。
| Path | Contents |
|---|---|
/home/ps5 | インストールされた Web サイト、スクリプト、ペイロード |
/etc/ps5-host | 証明書、秘密鍵、DNS 設定、プロファイル UUID |
/etc/systemd/system/ps5-* | サービスとターゲットの定義 |
/usr/local/sbin/ps5-start-hotspot | Wi-Fi 有効化ヘルパー |
/var/backups/ps5-pi | セットアップ中にバックアップされたファイル |
更新をユーザーのホームフォルダーにアップロードし、上記のようにセットアップを再実行します。インストールされた
フォルダーは変更に sudo が必要な場合があります。Python ファイルを直接編集した後は、
sudo systemctl restart ps5-http ps5-https を実行します。静的ファイルの変更には
Python の再起動は不要ですが、更新された JavaScript を読み込むにはガイドを閉じて再度開いてください。
sudo systemctl disable --now ps5-host.target
これは 4 つすべてのコンポーネントサービスを停止します。ホットスポットプロファイルは
単独で自動接続しません。既存の Wi-Fi プロファイルは保持されます。必要に応じて nmtui で
選択してください。プロジェクトファイル、証明書、バックアップは保持されます。
Pi ハードウェア、Wi-Fi アソシエーション、PS5 の実行には実機テストが必要です。 インストーラーの構文/構成チェックはそのテストの代わりにはなりません。