Skip to content

idlesauce/PS5-Exploit-Host-Self-Host-Tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PS5-Exploit-Host-Self-Host-Tool

This program shouldn't be considered production-ready, expose it to the internet at your own risk! If you want to self-host and expose it to the internet consider using actively maintained projects like PiHole for DNS and nginx for the static file hosting. You can find the static files (optionally) already set up with appcache under the releases tab of the PS5-Exploit-Host repo.

Features

All features are customizable and can be disabled individually

  • HTTPS file server
  • Automatic updates for served files
    • By default using cached PS5-Exploit-Host.
    • Configurable to work with any github repo, including a specific folder in it.
      • More info in notes.
  • DNS server
    • Blocks all PlayStation domains except manuals.playstation.net, which redirects to your computer's IP.
    • Option to block all other domains or specify a whitelist.
  • Offline Wi-Fi Access Point
    • Compatible with Windows 10 1809+ and Linux.
    • Optional internet access on the AP for Linux.
    • Optional DNS hijacking on the AP for Linux.
    • Tested on Windows 11 PC and Raspberry Pi Zero 2W running Pi OS Lite, both were able to create a Wi-Fi AP while connected to another Wi-Fi network on the same adapter.

Linux Install Script

Automatically download dependencies and set up the program as a service to run at startup.

  • If you are using the LAN mode, set up your device with a static IP before running the script!
  • After its done follow the Setup section instructions from step 5!
  • The ap argument provided here is only for the default config, if a config.ini exists this will not override it.
  • For Raspberry Pis i recommend using the Raspberry Pi OS Lite (64-bit) image from Raspberry Pi OS (other) in the imager. 32-bit images are not supported by this script.
  • At the end the script will show you the TargetIP setting, double-check that this is correct. You'll need to set this IP as the DNS on your PS5 and use it for the browser pkg.
  • At the end the script will show you the default Wi-Fi password if you're using the Wi-Fi AP mode.
  • You can also use this script to update the program.
  • If you need to modify the config.ini, you can restart the service using sudo systemctl restart PS5-Exploit-Host-Self-Host-Tool.service after editing the file.

Wi-Fi AP mode:

curl -s https://raw.githubusercontent.com/idlesauce/PS5-Exploit-Host-Self-Host-Tool/refs/heads/main/install.sh | sudo bash -s ap

LAN mode:

curl -s https://raw.githubusercontent.com/idlesauce/PS5-Exploit-Host-Self-Host-Tool/refs/heads/main/install.sh | sudo bash

Uninstall:

curl -s https://raw.githubusercontent.com/idlesauce/PS5-Exploit-Host-Self-Host-Tool/refs/heads/main/uninstall.sh | sudo bash

Setup

  1. Download the latest release from the releases page
    • Only x64 and arm64 Windows, macOS and Linux systems have a precompiled binary, for other architectures and OSes you'll need to download the framework-dependent version and run through dotnet.
  2. Run the executable
    • On the first run it will generate a config file with default values, print the path then exit
      • On Windows run through the Terminal to see the output rather than double clicking
    • On Windows and Linux you'll need to run as admin/root for the program to be able to kill other processes that use udp port 53
    • On Linux and macOS you'll need to run as root to be able to bind to port 53 for the DNS server and port 443 for the HTTPS server
  3. Edit config.ini to your liking. Make sure to set the correct ServersBindIP and TargetIP!
    • TargetIP must be set to the IP that the PS5 can use to access your computer.
      • This setting is only used for User Guide redirection in the DNS server.
    • ServersBindIP should either match TargetIP or be 0.0.0.0 to bind to all interfaces.
      • On Windows binding to 0.0.0.0:53 will fail since svchost is already using that address, and i whitelisted that from being killed since it seems to provide the DHCP for the Wi-Fi AP, thankfully you can still bind to TargetIP:53 while svchost is running.
        • To remove this exception and kill all programs using port 53 you can set KillSvchost to true in the config.ini
    • The app automatically sets the ServersBindIP and TargetIP to the IP of the first network adapter it finds. Unless you're using the Wi-Fi AP, or have multiple adapters, you'll likely already have the correct IP.
    • On Windows the Wi-Fi AP will always use 192.168.137.1 as the IP, you'll need to set ServersBindIP and TargetIP to this address for the Wi-Fi AP to work correctly
  4. Restart the program
  5. Change the DNS on your PS5 to match your TargetIP setting
    • Settings -> Network -> Settings -> Set Up Internet Connection -> Options button on the registered network -> Advanced Settings -> DNS Settings -> Manual -> Primary DNS: TargetIP, Secondary DNS: empty/0.0.0.0.
    • If you're using the Wi-Fi AP on Linux, the DHCP server will automatically set the DNS to the correct IP
  6. Jailbreak through the User Guide then Install a browser pkg
    • I have made pkgs for the most common IP ranges using port 20000 which you can download here: https://ps5browser.pages.dev/
    • By default the config has BlockAppCacheRequestsOnHttps enabled which will send a 404 for appcache manifest requests coming from https(user guide) to avoid having to deal with a stale cache since the appcache will fail to update after a reboot because of the self-signed certificate.
      • More info in the notes section
  7. Disable the HTTPS server in the config
    • Replace "443" with "" in the HttpsPort setting in the config.ini and restart the program

Notes

  • Settings and served files are stored in your user folder

    • Windows: C:\Users\yourusername\.ps5-exploit-host
    • Linux: /user/yourusername/.ps5-exploit-host or /root/.ps5-exploit-host
    • macOS: /Users/yourusername/.ps5-exploit-host
    • This folder also contains a .internal folder which shouldn't be edited. It is used hold the ETag of the currently downloaded version so the auto updater can recognize when there's a new update and the dnsmasq and hostapd configs and pids on linux
  • The path of the loaded config file and served folder are displayed at startup

  • If the program detects a config.ini next to the executable it will use that instead of the one in the user folder

  • If the program detects an index.html next to the executable it will use the exe's folder as the file server root instead of wwwroot in the app data folder in the user folder

    • In this scenario the auto updater is disabled
  • Generally i would recommend using appcache without https and only using this program to refresh the cache.

  • If you'd prefer to use the user guide, you can either set HostFilesAutoUpdaterUseCachedVersion to false in the config.ini which will fetch the files from github on the next start if needed. With this version you'll no longer get the error toast but this wont work offline.

  • You can also keep using the user guide with cache after setting BlockAppCacheRequestsOnHttps to false in the config.ini but you'll have to do one of the following to update the cache:

    • Run the appcache remover option in my host
    • You can also clear the appcache by connecting to a network with internet and disabling the UserGuideRedirect option in the config.ini and restarting the app, after which you'll get served the real user guide with the trusted certificate which will clear the old appcache.
  • The HostFilesAutoUpdaterSource field in the config.ini accepts the following values:

    • appcache which downloads PS5-Exploit-Host with appcache set up.
    • no-appcache which downloads PS5-Exploit-Host without appcache.
    • Any link to a .zip, but the host must send an ETag header, since this is used to determine if the file changed without having to download the zip every time.
    • A GitHub url in one of the following formats:
      • https://github.com/idlesauce/PS5-Exploit-Host
      • https://github.com/idlesauce/PS5-Exploit-Host/tree/dev
      • https://github.com/idlesauce/PS5-Exploit-Host/tree/main/document/en/ps5
      • https://github.com/idlesauce/PS5-Exploit-Host/releases/latest/download/ps5-exploit-host_appcache.zip
  • The auto updater looks for an index.html in the archive and will only extract containing folder of the first match.

  • To avoid ever using the default DNS, you can also set up the Wi-Fi connection manually through the Set Up Manually option in the bottom of the Set Up Internet Connection menu which allows you to set the DNS manually before the first connection

Credits