
पीएस5 के यूएसबी पोर्ट से संचालित रास्पबेरी पाई पर पीएस5 एक्सप्लॉइट वेब सर्वर
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 User's Guide खोलने पर स्थानीय पेज लोड होता है।
इंस्टॉलर साइट को /home/ps5 में कॉपी करता है, इसकी निर्भरताएँ इंस्टॉल करता है, एक स्थानीय स्व-हस्ताक्षरित TLS प्रमाणपत्र जनरेट करता है, और systemd सेवाएँ बनाता है।
यह इंस्टॉलेशन पूरा होने पर होस्ट शुरू करता है और हर बूट पर इसे सक्षम करता है;
आपको कोई टर्मिनल या SSH सत्र खुला छोड़ने की आवश्यकता नहीं है।
आपको हॉटस्पॉट-सक्षम Wi-Fi वाला Raspberry Pi, Raspberry Pi OS वाला SD कार्ड, उपयुक्त पावर सप्लाई, और इंस्टॉलेशन के दौरान इंटरनेट एक्सेस चाहिए। सेटअप के लिए Ethernet का उपयोग करें क्योंकि Pi का अंतर्निहित Wi-Fi हॉटस्पॉट बन जाता है। यदि संयुक्त राज्य अमेरिका में 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 OS इंस्टॉल करने के लिए Raspberry Pi Imager का उपयोग करें। एक उपयोगकर्ता नाम,
पासवर्ड और 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 चार सेवाओं को समूहित करता है। यह एक systemd टारगेट है, टर्मिनल
सत्र नहीं। सेटअप इसे multi-user.target के अंतर्गत सक्षम करता है और तुरंत शुरू करता है।
| यूनिट | उद्देश्य |
|---|---|
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 हॉटस्पॉट के शुरू होने की प्रतीक्षा करता है। वेब और DNS प्रक्रियाएँ विफलता पर पुनः आरंभ होती हैं। टारगेट को रोकने से सभी चार सेवाएँ रुक जाती हैं; इसे पुनः आरंभ करने से वे एक साथ पुनः आरंभ होती हैं।
बूट सक्षमता और सेवा स्वास्थ्य की जाँच करें:
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 और
वेब सेवाएँ active (running) होनी चाहिए। हॉटस्पॉट एक वन-शॉट सक्रियण कमांड का उपयोग करता है,
इसलिए active (exited) सामान्य है। अपने Pi पर बूट स्टार्टअप की पुष्टि करने के लिए रीबूट करें और इन जाँचों को दोहराएँ।
| सेटिंग | मान |
|---|---|
| Wi-Fi नेटवर्क | PS5-Host |
| पासवर्ड | ps5offline (जब तक सेटअप के दौरान बदला न गया हो) |
| IP पता | स्वचालित |
| DNS | स्वचालित |
| DHCP होस्टनाम | निर्दिष्ट न करें |
| MTU / प्रॉक्सी | स्वचालित / उपयोग न करें |
| Pi हॉटस्पॉट IP | 192.168.4.1 |
| DHCP पूल | 192.168.4.100–192.168.4.150, 12-घंटे की लीज़ |
User's Guide खोलें और यदि स्थानीय प्रमाणपत्र प्रॉम्प्ट दिया जाए तो उसे पार करें। DNS, manuals.playstation.net को Pi पर निर्देशित करता है; HTTPS गाइड अनुरोध को संभालता है। R2, nanoDNS, ShadowMount Plus, फिर kstuff भेजता है। हॉटस्पॉट में कोई कॉन्फ़िगर किया गया इंटरनेट शेयरिंग नहीं है, इसलिए स्थानीय पेज काम करते समय इंटरनेट/PSN कनेक्शन टेस्ट विफल हो सकता है। Pi के प्रशासन के लिए Ethernet उपलब्ध रहता है।
एक्सप्लॉइट के 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/
वेब फ़ाइलों और पेलोड के लिए /home/ps5 का उपयोग करें। Python फ़ाइलों को बदलने के बाद
वेब सेवाएँ पुनः आरंभ करें; 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