Home Homebrew Pubblicato un nuovo aggiornamento per FTPDump Bash Script

[Scena PS4] Pubblicato un nuovo aggiornamento per FTPDump Bash Script

406
1

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]

  1. Inserire un disco e installare il gioco. Facoltativo: Visitare orbispatches.com per scaricare e installare una patch di gioco compatibile con il proprio firmware.
  2. Avviare un server FTP PS4 (consigliato: https://github.com/hippie68/ps4-ftp).
  3. Premere il tasto per uscire dal browser.
  4. Eseguire il gioco.
  5. 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”.

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 %*

Quindi, lo script può essere eseguito aprendo un prompt dei comandi di Windows (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

Per salvare l’indirizzo IP e la porta in modo permanente, aprire e modifica il file 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

Devi installare Wget e aggiornare la tua versione di Bash e avere GNU dd (parte di coreutils) invece del dd predefinito di macOS potrebbe migliorare leggermente la velocità di dumping complessiva:

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

 

1 commento

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.