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.
Caratteristiche
- Sostituisce automaticamente i trofei crittografati.
- Corregge automaticamente i dump della rimasterizzazione (se il programma “sfo” è disponibile).
- Può elencare e scaricare i file PKG installati.
- Può estrarre file immagine PKG e PFS non crittografati.
- Supporta il payload FTP migliorato 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 tutto ciò che può eseguire Bash.
Indice
Manuale
Utilizzo: ftpdump [OPTIONI] NOMEHOST|INDIRIZZO_IP[:PORTA]
- 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
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, assicurarsi che il gioco sia completamente installato. Uscire dallo script in qualsiasi momento premendo CTRL-C
.
Opzioni
-a
, --app
– Scarica i dati dell’app.
--appdb
– Scarica il file app.db ed esci.
--beep
– Esegue un Beep al termine.
-d
, --dlc
– Scarica i dati del DLC.
--debug
– Stampa le informazioni di debug.
--debug-pfs
– Stampa le informazioni di debug durante l’estrazione di un file immagine PFS.
--download PATH
– Scarica il file o la directory FTP specificati ed esci. Le directory devono terminare con una barra: “PATH/”.
--download TITLE_ID [TITLE_ID ...]
– Scarica i file PKG con i Title ID specificati e esentato. Può essere combinato con le opzioni --app
, --patch
, --dlc
.
--extract-pfs PFS_IMAGE_FILE
– Estrai un file immagine PFS locale ed esci.
--extract-pkg PKG_FILE
– Estrai un file PKG PS4 locale ed esci.
--fix-remaster PARAM_SFO_FILE
– Applicare la correzione “remaster” a un file param.sfo
locale e esentato. Richiede il programma “sfo”.
-h
, --help
– Stampa informazioni sull’utilizzo.
-k
, --keystone
– Scarica la chiave di volta originale.
--keep-trying
– Continua a provare a connettersi all’infinito.
--list[N]
– Stampa un elenco ordinato di PKG installati ed esce. Può essere combinato con le opzioni --app
, --patch
, --dlc
. Il numero N
opzionale specifica l’ordinamento: 1: Title ID, 2: Tipo, 3: Posizione, 4: Stato database, 5: Stato PKG, 6: Titolo.
--no-decrypt
– Non utilizzare la decrittografia SELF lato server.
-o
, --output-dir DIRECTORY
– Imposta la directory di output root per i dump e le estrazioni.
-p
, --patch
– Scarica i dati della patch.
-r
, --resume
– Riprende un download precedentemente interrotto. Quando viene utilizzato con server FTP legacy, questo può corrompere i file decifrati.
-s
, --sflash
– Scarica il file sflash0 ed esci.
--shutdown
– Invia il comando FTP personalizzato “SHUTDOWN” ed esci. Se il server FTP capisce il comando, smetterà di funzionare.
--use-pfs
– Durante il dumping, invece di scaricare i file separatamente, scarica ed estrae il file immagine PFS.
-v
, --verbose
– Stampa la finestra di dialogo client/server durante il download dei file.
Come scaricare
Esempio di comando: $ ./ftpdump 192.168.1.100
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.
Per impostazione predefinita, lo script emette un segnale acustico solo durante il dump dei dati di app/patch/DLC, a meno che non sia specificata l’opzione --beep
.
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”.
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.3 o inferiore può controllare solo 1 file alla volta e quindi rallenterà molto il processo.
I file PKG possono essere scaricati utilizzando l’opzione --download
con uno o più Title ID, ad esempio:
--download 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 --download
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.
Informazioni aggiuntive
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.
Il payload FTP aggiornato su https://github.com/hippie68/ps4-ftp risolve questi problemi. Si consiglia vivamente di utilizzarlo per evitare il bug del throughput della rete e di utilizzare l’opzione --resume
senza problemi.
Changelog
- Supporto per il server FTP di GoldHEN 2.4: Rispetto a GoldHEN 2.3 e versioni precedenti, l’elenco dei file PKG (
--list
) ora è molto più veloce. - Quando è ordinato per titolo, l’elenco PKG ora è ordinato correttamente (
--list6
, richiede il programma “sfo”). - Migliorato il rilevamento del percorso sfo.
- Rinominata l’opzione
--dump
in--download
;--dump
viene comunque ancora riconosciuto. - Lo script ora controlla macOS e tenta di utilizzare gdd/ggrep invece di dd/grep su macOS.
Download: Source code FTPDump
Fonte: github.com
bellissimo1