Insieme alla versione modificata di PlayStation 4 Save Mounter per console PlayStation 5, il developer idlesauce ha rilasciato anche PS5Debug, un payload sperimentale pensato per offrire funzionalità avanzate di controllo sulla console.
Sebbene lo strumento sia ancora in una fase iniziale e incompleta, idlesauce ha deciso comunque di renderlo pubblico, invitando la comunità a contribuire al suo sviluppo e perfezionamento.
Caratteristiche principali
Modifiche rispetto a PS4Debug
- L’API presenta lievi modifiche rispetto a PS4Debug, ma la maggior parte delle funzionalità rimane compatibile.
- Il payload è stato sviluppato utilizzando PS5-Payload-SDK e attualmente viene fornito come file ELF, da caricare tramite un ELF loader. In futuro, potrebbe essere reso eseguibile autonomamente (funzionalità non testata su HEN-V).
Elementi incompleti
- Il debugger ha molti problemi e deve essere completato.
proc_scan_compareValues
deve essere finito.proc_scan_getSizeOfValueType
deve essere completato.proc_scan_handle
deve essere completato.
Nuovi comandi
- Unload: Comando per terminare il payload.
Comando:0xBD0000FF
Nessun pacchetto payload richiesto. - Process Base: Restituisce l’indirizzo base di un processo.
Comando:0xBDAA000D
Struttura:
struct cmd_proc_base_packet {
uint32_t pid;
} __attribute__((packed));
#define CMD_PROC_BASE_PACKET_SIZE 4
Funzionalità testate
Comandi per la console
- Reboot: Riavvia la console.
- Print: Stampa un messaggio.
- Notify: Mostra una notifica.
- Unload (Nuovo): Termina il payload.
- Version: Mostra la versione.
Comandi del kernel
- Kernel Base: Ottieni l’indirizzo base del kernel.
- Leggi memoria: Leggi dalla memoria.
- Scrivi memoria: Scrivi nella memoria.
Comandi del processo
- Process Base (Nuovo): Ottieni l’indirizzo base di un processo.
- Process List: Elenco dei processi attivi.
- Leggi memoria: Leggi dalla memoria di un processo.
- Scrivi memoria: Scrivi nella memoria di un processo.
- VM Maps: Gestisci le mappe di memoria virtuale.
- Allocate: Solo lettura/scrittura per default.
- Protect: Imposta il livello di protezione di una mappa VM (ignora la lunghezza e imposta un livello di protezione 0x7 su tutta la mappa).
- InstallRPC: Attualmente finto, non necessario, restituisce un indirizzo falso.
- Call: Usa
ptrace
per eseguire chiamate. - Free: Non è chiaro se funzioni.
Info e caricamento ELF
- Load Elf: Necessita di aggiornamenti, usa un elfloader con
ptrace
, che a volte blocca il gioco.
Debugger
- Il debugger è in gran parte non funzionante. Chi conosce meglio
ptrace
e i debugger potrebbe sistemarlo velocemente. È una copia del codice di PS4Debug.
Modifiche richieste
- Loader ELF: Deve essere rifatto per caricare correttamente un ELF in un gioco. La versione attuale è leggermente modificata, ma necessita di ulteriori miglioramenti.
- Metodo “Free”: Non è chiaro se funzioni, sarebbe utile trovare un’alternativa.
- Metodo “Protect”: Bisogna trovare un modo per proteggere indirizzi specifici, non l’intera mappa.
- Uso di
sceNetSocket
: Non è più necessario, ma è stato replicato per comodità; sarebbe meglio eliminarlo.
Download: PS5Debug v0.0.1
Download: Source code PS5Debug v0.0.1
Fonte: github.com