This is a simple FTP server that can be executed on a Playstation 4 or Playstation 5 that has been jailbroken and is running an ELF loader. The FTP server accepts connection on port 2121.
Client software that has been testing include gFTP, Filezilla, curl, and Thunar. The payload supports a couple of custom SITE commands specifically for the PS4 and PS5 (executed without prepending SITE). In particular:
- KILL - kill the FTP server.
- MTRW - remount /system and /system_ex with write permissions.
When ftpsrv.elf is running on a PS4, segments contained within SELF files (i.e., ELF files with potentially encrypted segments), some encrypted data is decrypted on the fly. To disable this behaviour and transer the encrypted SELF file in its original form, issue the SITE command SELF (without the SITE prefix) before starting the transfer. Note: the SELF command operates on induvidual connections.
Assuming you have the ps4-payload-sdk installed on a POSIX machine, the FTP server can be compiled using the following two commands:
john@localhost:ftpsrv$ export PS4_PAYLOAD_SDK=/opt/ps4-payload-sdk
john@localhost:ftpsrv$ make -f Makefile.ps4Assuming you have the ps5-payload-sdk installed on a POSIX machine, the FTP server can be compiled using the following two commands:
john@localhost:ftpsrv$ export PS5_PAYLOAD_SDK=/opt/ps5-payload-sdk
john@localhost:ftpsrv$ make -f Makefile.ps5Assuming you have a compiler toolchain installed on your GNU/Linux system, the FTP server can be compiled using the following command:
john@localhost:ftpsrv$ make -f Makefile.posixIf you encounter problems with ftpsrv, please file a github issue. If you plan on sending pull requests which affect more than a few lines of code, please file an issue before you start to work on you changes. This will allow us to discuss the solution properly before you commit time and effort.
ftpsrv is licensed under the GPLv3+.