Pubblicato un nuovo aggiornamento per FTPDump, lo strumento realizzato dal developer hippie68 ci permette di dumpare i giochi della PlayStation 4 e PlayStation 4 Pro attraverso la connessione FTP.
FTPDump è un semplice script bash, lo strumento necessita di un client cURL, di GNU Wget e di un server FTP in esecuzione sulla console PS4 e che supporti la decrittazione dei file SELF. Per la massima velocità, si consiglia una connessione via cavo Gigabit.
- Nessun dispositivo USB richiesto.
- Non sono necessari riavvii e re-jailbreaking (continua a scaricare).
- Sostituisce automaticamente i trofei crittografati.
- Corregge automaticamente i dump di rimasterizzazione.
- Può estrarre file immagine PKG e PFS non crittografati.
- Supporta il payload FTP aggiornati su https://github.com/hippie68/ps4-ftp per le migliori prestazioni.
- Funziona su: Windows 7/8 o Windows 10 a 32 bit tramite Cygwin, Windows 10/11 a 64 bit tramite WSL, Linux, macOS e, in teoria, qualsiasi cosa possa eseguire Bash.
Comando di esempio
$ ./ftpdump 192.168.1.100
Script
Usage: ftpdump [OPTIONS] HOSTNAME|IP_ADDRESS[:PORT]
-
- Inserire un disco e installare il gioco. Facoltativo: Visitare orbispatches.com per scaricare e installare una patch di gioco compatibile con il proprio firmware.
- Avviare un server FTP PS4 (consigliato: https://github.com/hippie68/ps4-ftp).
- Premere il tasto (nessun altro tasto) per uscire dal browser.
- Eseguire il gioco.
- Eseguire questo script.
Per scaricare più giochi, ripetere i passaggi 4) e 5).
Prima di eseguire lo script, assicurati che il gioco sia completamente installato. Se il processo di dumping viene interrotto, eliminare i dump parziali prima di riprovare.
Exit the script at any time by pressing CTRL-C.
Options:
-a, --app Dump app data.
--appdb Dump app.db file and quit.
--beep Beep when done.
-d, --dlc Dump DLC data.
--debug Print debug information.
--debug-pfs Print debug information while extracting a PFS image file.
--dump PATH Dump specified FTP file or directory and quit.
Directories must end with a slash: "PATH/".
--dump TITLE_ID [TITLE_ID ...]
Dump PKG files that have the specified Title ID(s) and
quit. Can be combined with options --app, --patch, --dlc.
--extract-pfs PFS_IMAGE_FILE
Extract a local PFS image file and quit.
--extract-pkg PKG_FILE
Extract a local PKG file and quit.
--fix-remaster PARAM_SFO_FILE
Apply the "remaster" fix to a local param.sfo file and
quit. Requires program "sfo".
-h, --help Print usage information.
-k, --keystone Dump original keystone.
--keep-trying Infinitely keep trying to connect.
--list[N] Print a sorted list of installed PKGs and quit. Can be
combined with options --app, --patch, --dlc. The optional
number N specifies the sort order: 1: Title ID, 2: Type,
3: Location, 4: Database status, 5: PKG status, 6: Title.
--no-decrypt Do not tell the FTP server to enable SELF decryption.
-o, --output-dir DIRECTORY
Set the root output directory for dumps and extractions.
-p, --patch Dump patch data.
-r, --resume Resume a previously interrupted download. When used with
legacy FTP servers, this can corrupt decrypted files.
-s, --sflash Dump sflash0 file and quit.
--shutdown Send the SHUTDOWN command and quit. If the FTP server is a
payload that understands the command, it will stop running.
--use-pfs Instead of downloading files separately, download and
extract the PFS image file.
-v, --verbose Increase cURL's verbosity to see the client/server dialog.
Per impostazione predefinita, i dati di app, patch e DLC verranno scaricati. Se non viene specificata alcuna directory di output, verrà utilizzata la directory corrente.
I dump avverranno nelle seguenti sottodirectory:
CUSAXXXXX-app
CUSAXXXXX-patch
CUSAXXXXX-dlc
CUSAXXXXX-keystone
Facoltativamente, l’indirizzo IP e la porta possono essere salvati all’interno dello script:
ip=192.168.xxx.xxx
port=1337
Lo speaker del PC può essere utilizzato per emettere un segnale acustico quando un dump è completo:
beep=true
beep_time=60 (in seconds)
beep_interval=3 (in seconds)
A seconda del computer e del sistema operativo, potresti non avere un altoparlante per PC o devi prima abilitarlo.
Elenca e scarica i file PKG
Per elencare le informazioni sui PKG installati, utilizzare l’opzione --list
. L’output sarebbe simile a questo:
Title ID Type Location DB PKG Title*
CUSA07010 App internal OK OK Sonic Mania
CUSA07010 DLC internal OK 1/1 Sonic Mania
CUSA07010 Patch internal OK OK Sonic Mania
CUSA11993 DLC internal OK - [App not installed]
FLTZ00003 App internal OK OK Remote PKG installer
LAPY20001 App internal OK OK PS4-Xplorer
PSNE00001 App internal OK OK pSNES - Portable Snes9x
Colonna “DB” (“Database”):
- “OK” significa che il database PS4 riconosce il Title ID.
- “-” significa che il database PS4 non riconosce il Title ID.
Colonna “PKG”:
- “OK” significa che il file PKG esiste.
- “-” significa che non esiste un file PKG e la directory è vuota.
- “x/y” significa che x su y file PKG DLC che erano stati installati a un certo punto sono ancora lì.
*La colonna “Title” viene visualizzata solo se è disponibile il programma “sfo”.
Utilizzare l’opzione --listN
invece di --list
per modificare l’ordinamento predefinito dell’elenco. Ad esempio, per ordinare per titolo (6a colonna): “–list6”.
[stextbox id=’info’]Nota: Lo script utilizza connessioni FTP simultanee per creare l’elenco il più velocemente possibile. Server FTP che non supportano connessioni simultanee, ad es. il server FTP di GoldHEN 2.0 può controllare solo 1 file alla volta e quindi rallenterà molto il processo.[/stextbox]
I file PKG possono essere scaricati utilizzando l’opzione --dump
con uno o più Title ID, ad esempio:
--dump cusa07010 fltz00003 lapy20001
I file verranno archiviati nelle seguenti sottodirectory:
TITLE_ID-app-pkg
TITLE_ID-patch-pkg
TITLE_ID-dlc-pkg
Sia --list
che --dump
possono essere combinati con --app
, --patch
e --dlc
per elencare e scaricare file PKG di un tipo specifico.
Aggiunta del programma “sfo”
Facoltativamente, alcune delle funzioni dello script possono utilizzare sfo (https://github.com/hippie68/sfo). Per abilitarlo, inserire un file binario sfo compilato nella directory dello script o modificare la variabile di script “sfo_path”.
- Per Cygwin 32-bit: https://github.com/hippie68/sfo/releases/download/v1.02/sfo_32.exe
- Per Cygwin 64-bit: https://github.com/hippie68/sfo/releases/download/v1.02/sfo.exe
- Per WSL or 64-bit Linux: https://github.com/hippie68/sfo/releases/download/v1.02/sfo
- Per 32-bit Linux: https://github.com/hippie68/sfo/releases/download/v1.02/sfo_32
Risoluzione dei problemi
Puoi abilitare i messaggi di debug e/o vedere i messaggi di stato di cURL utilizzando le opzioni --debug
e --verbose
.
Per confrontare la directory scaricata con un dump di riferimento (ad esempio uno creato da un payload di dumper), digitare:
diff -r DUMP_DIRECTORY_1 DUMP_DIRECTORY_2
Si noti che il server FTP di GoldHEN 2.0 utilizza un metodo di decrittazione diverso. Ciò significa che alcuni file .sprx
potrebbero differire a causa degli zeri rimossi, ma dovrebbero essere completamente funzionanti.
Ciò significa anche riprendere i file decrittografati tramite l’opzione --resume
corromperà i file se si riprende un dump parziale eseguito da un server FTP diverso con il server FTP di GoldHEN 2.0 e viceversa.
Se lo script non viene eseguito come previsto, segnalare i bug su https://github.com/hippie68/ftpdump/issues.
Per utenti Windows
Lo script viene eseguito su Windows 7/8 e Windows 10 a 32 bit tramite Cygwin (https://www.cygwin.com) e su Windows 10/11 a 64 bit tramite WSL (https://docs.microsoft.com/windows/wsl/install).
Dopo aver installato WSL (Windows Subsystem for Linux), per comodità puoi:
Scaricare il file ZIP dal GitHub: Selezionare il pulsante verde “Code”, quindi “Download ZIP”. Estrarre il file ZIP. Nella stessa cartella che contiene il file “ftpdump”, creare un file batch denominato ftpdump.bat
con il seguente contenuto:
wsl -e ./ftpdump %*
cmd.exe
) e digitando (sostituire l’indirizzo IP con l’IP e la porta FTP della PS4):ftpdump 192.168.1.100:1337
È possibile passare anche altre opzioni, ad esempio:
ftpdump 192.168.1.100:1337 -p --dlc
ftpdump
con un editor di testo che supporti il formato Unix. Sulle build attuali di Windows 10/11, Notepad dovrebbe funzionare.Se Wget non è installato per impostazione predefinita, puoi installarlo aprendo un prompt dei comandi di Windows e immettendo:
wsl -e sudo apt install wget
Se vuoi creare una scorciatoia che esegue comandi ftpdump predefiniti al doppio clic, salvare una copia del file ftpdump.bat
con un nome di file .bat
diverso, sostituire “%*” con le opzioni desiderate e aggiungere la riga “pause” alla fine del file.
Per utenti macOS
brew install coreutils wget
GNU dd migliorerà notevolmente le prestazioni durante l’estrazione di immagini PFS. Dopo aver installato Homebrew’s Bash, assicurati di regolare lo shebang (la prima riga dello script) in modo che punti al percorso corretto.
Limitazioni note
Gli attuali server FTP della PS4, che si basano sullo stesso codice, hanno alcune limitazioni che influiscono sulle prestazioni dello script:
- Il download di diversi file SELF in parallelo può danneggiare la decrittazione dei file SELF, rendendo di fatto il download in parallelo un non-go.
- L’annullamento del download di file di grandi dimensioni (che lo script utilizza per velocizzare le cose) non impedirà al server di inviare il resto del file. Il risultato è un throughput di rete ridotto (più in casi estremi un calo delle prestazioni di PS4). Attualmente è possibile aggirare questo problema se il server FTP supporta il comando personalizzato
KILL
(che verrà quindi chiamato dallo script). - Quando la decrittografia è abilitata, i server segnalano comunque la dimensione del file crittografato, che può danneggiare la ripresa.
- I file di dimensioni superiori a 4 GB potrebbero non riprendersi correttamente.
--resume
senza problemi.Download: Source code FTPDump
Fonte: github.com