Home Homebrew Pubblicato un nuovo aggiornamento per FTPDump Bash Script

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

397
0

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]

    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 (nessun altro 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, 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”.

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

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.

Download: Source code FTPDump

Fonte: github.com

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.