Home Homebrew ShadPKG si aggiorna alla versione 2.1.0: Più stabilità e nuova analisi SFO...

ShadPKG si aggiorna alla versione 2.1.0: Più stabilità e nuova analisi SFO per i PKG PS4

135
0

Pubblicato un nuovo aggiornamento per shadPKG, lo strumento sviluppato dal developer Seregon pensato per l’estrazione e la decifratura dei file PKG della PlayStation 4, ovvero i pacchetti che includono giochi, aggiornamenti, DLC e contenuti homebrew.

ShadPKG si è già affermato come una soluzione affidabile grazie al supporto completo per diverse tipologie di pacchetti, alla presenza di una barra di avanzamento durante le operazioni e alla generazione di log dettagliati che consentono di monitorare ogni fase del processo in modo chiaro e trasparente.

Questo aggiornamento segna un passo avanti significativo soprattutto sul fronte della stabilità e dell’usabilità. Il tool introduce una nuova funzione dedicata all’ispezione dei file param.sfo, permettendo di analizzarne il contenuto direttamente dal PKG senza dover prima estrarre l’intero pacchetto.

Ora è possibile ottenere informazioni standard, esportare i dati in formato JSON per l’uso in script automatizzati, interrogare chiavi specifiche come il TITLE_ID e attivare una modalità verbosa per un’analisi più approfondita.

Questa novità rende shadPKG ancora più utile per sviluppatori e utenti avanzati che lavorano con grandi quantità di file PKG.

Un’altra miglioria rilevante riguarda la logica di estrazione, che ora è più intelligente e ordinata. Durante l’estrazione, i file vengono automaticamente organizzati in una sottocartella basata sul Content ID del pacchetto, evitando sovrascritture accidentali e mantenendo l’ambiente di lavoro pulito anche quando si elaborano più PKG consecutivamente.

Questo cambiamento migliora notevolmente il flusso di lavoro, soprattutto in ambito di analisi e reverse engineering.

Sul fronte delle correzioni, l’aggiornamento risolve un bug critico che causava l’estrazione dei file in directory annidate all’infinito, riportando il comportamento a una struttura pulita e lineare.

Sistemato inoltre un problema che impediva il corretto rilevamento del file param.sfo all’interno dei file PKG, causato da una funzione errata nel sistema di build.

Migliorie importanti hanno interessato anche il sistema di compilazione, con la correzione dei riferimenti ai file sorgente, una migliore compatibilità con macOS grazie al linking corretto di CoreFoundation e il pieno allineamento allo standard C++17.

A livello di usabilità, il binario è stato rinominato da pkgtool a shadpkg, rendendo il comando più coerente e immediato. Sono stati infine introdotti miglioramenti alla sicurezza dei thread tramite l’uso di mutex, riducendo il rischio di crash durante le operazioni multithread.

Un ringraziamento speciale è stato rivolto a @inferrna, il cui feedback e testing hanno contribuito in modo decisivo alla qualità di questa release.

Caratteristiche principali

  • Analisi completa della struttura dei file PKG.
  • Derivazione e gestione automatica delle chiavi di crittografia.
  • Decifratura dei dati protetti.
  • Estrazione completa di file e directory.
  • Supporto per PKG retail, aggiornamenti, DLC e homebrew.
  • Estrazione multi-thread con indicazione dello stato di avanzamento.

Requisiti

  • Sistema operativo: Windows 10 / 11 (x64).
  • Compilatore: Visual Studio 2022 (Build Tools o IDE completo).
  • Python: versione 3.10 o superiore (necessaria per build.py).
  • Dipendenze: Conan 2.x.
    • Utilizzato per la gestione di librerie come Zlib, Crypto++ e altre.

Istruzioni per la compilazione

  • Clonare la repository.
  • Installare le dipendenze tramite vcpkg.
    • Eseguire vcpkg/bootstrap-vcpkg.bat
    • Installare i pacchetti richiesti (es. vcpkg install zlib cryptopp).
  • Compilare il progetto.
    • Eseguire python build.py dalla cartella principale del progetto.
    • I file binari verranno generati in build/Release/

Utilizzo

Da terminale o PowerShell: shadPKG.exe <percorso_al_file.pkg> <cartella_di_output>.

Esempio: shadPKG.exe "C:\GAMES\CUSA12345.pkg" C:\extracted\CUSA12345

Comportamento

  • Tutti i file e le directory contenuti nel file PKG vengono estratti nella cartella di destinazione.
  • Lo stato di avanzamento viene mostrato in tempo reale.
  • Un log di esecuzione dettagliato viene visualizzato in console e salvato nel file debug_log.txt.
  • Le voci sconosciute o senza nome vengono esportate come entry_0x<ID>.bin

Note e limitazioni

  • Alcuni tipi di file PKG, in particolare patch o aggiornamenti, possono omettere intenzionalmente determinati file.
  • In caso di problemi durante l’estrazione, è consigliato consultare il file debug_log.txt prima di segnalare errori.

Documentazione tecnica

Changelog

Questa versione introduce importanti miglioramenti alla stabilità, un nuovo comando per l’ispezione dei file SFO e una logica di estrazione più intelligente.

Un ringraziamento speciale a @inferrna per il feedback prezioso e i test che hanno reso possibile questo rilascio.

Nuove funzionalità

Comando sfo-info: Possibilità di analizzare i dati param.sfo direttamente dai file PKG senza doverli estrarre.

Utilizzo


# Standard info
shadpkg sfo-info game.pkg

# JSON output (great for scripts)
shadpkg sfo-info --json game.pkg

# Query specific keys
shadpkg sfo-info -q TITLE_ID game.pkg

# Verbose mode
shadpkg sfo-info -v game.pkg

Estrazione intelligente

Il comando extract ora organizza automaticamente i file.

  • I contenuti vengono inseriti in una sottocartella con il nome del Content ID (ad esempio Output/IV0000-BREW00052_00-MSGDIALOGS000000/).
  • Impedisce la sovrascrittura dei file e mantiene pulito lo spazio di lavoro durante l’elaborazione di più PKG.

Bug fix e miglioramenti

  • Correzione estrazione ricorsiva dei percorsi: Risolto un bug critico che causava l’estrazione dei file in directory annidate all’infinito (es. out/out/out/assets/...). L’estrazione ora è pulita e lineare.
  • Correzione rilevamento param.sfo: Risolto un problema che impediva di individuare il file param.sfo all’interno dei PKG a causa di una funzione stub errata nel sistema di build (#7).
  • Correzioni al sistema di build: Corretto il file CMakeLists.txt per compilare correttamente il sorgente pkg_type.cpp.
  • Migliorata la compatibilità con macOS, includendo il corretto linking di CoreFoundation e la conformità allo standard C++17.
  • Usabilità: Rinominato il binario da pkgtool a shadpkg per una migliore esperienza d’uso (#6).
  • Stabilità: Aggiunti miglioramenti alla sicurezza dei thread tramite mutex per prevenire crash durante operazioni multithread.

Download: shadPKG v2.1.0 (Debian)

Download: shadPKG v2.1.0 (MacOS)

Download: shadPKG v2.1.0 (Windows)

Download: Source code shadPKG v2.1.0