PS5 Debug NG continua a consolidarsi come uno degli strumenti più importanti per il panorama del jailbreak PlayStation 5, raggiungendo con la versione 1.2.6 un livello di maturità che lo rende una soluzione di riferimento per sviluppatori, modder, reverse engineer e appassionati di ricerca sulla memoria della console.

Nato come evoluzione del celebre ps5debug di Ctn, il progetto mantiene la piena compatibilità con gran parte degli strumenti già esistenti, consentendo agli utenti di continuare a utilizzare client come Reaper e numerosi tool dedicati ai cheat senza dover apportare modifiche o adattamenti particolari.
PS5 Debug Next Generation
— Full Support Up To 13.20
Enjoy
Open Source 4 Lifehttps://t.co/SyQLRDuRuv— Echo Stretch (@StretchEcho) June 3, 2026
Questa nuova versione introduce soprattutto importanti miglioramenti alla compatibilità con i firmware più recenti.
Gli sviluppatori hanno infatti completato il lavoro di supporto stabile per i firmware dalla serie 8.x fino alla 13.x, garantendo il corretto funzionamento delle operazioni di scrittura in memoria, dei breakpoint software e hardware e dei watchpoint.
Si tratta di un passo particolarmente significativo perché le versioni più recenti del firmware Sony hanno introdotto diverse limitazioni che rendevano sempre più complesso il funzionamento dei debugger tradizionali.
Uno degli aggiornamenti più rilevanti riguarda proprio la funzione Memory Write, conosciuta anche come Poke. Nelle versioni precedenti questa caratteristica incontrava problemi sui firmware 9.x e successivi a causa delle restrizioni imposte dal sistema.
Con la release 1.2.6 è stato implementato un nuovo approccio basato sul DMAP page-table walk, che sostituisce il precedente metodo mdbg ormai non più utilizzabile sui firmware moderni.
Grazie a questa soluzione la modifica diretta della memoria torna a essere pienamente operativa anche sulle console aggiornate.
Anche breakpoint e watchpoint hanno ricevuto una revisione approfondita. Gli utenti che lavorano con attività di reverse engineering o debugging avanzato possono ora contare su un comportamento molto più affidabile durante l’analisi dei processi, eliminando numerose incompatibilità che si manifestavano sui firmware più recenti.
Un altro miglioramento particolarmente apprezzabile riguarda il sistema di rilevamento delle informazioni dei giochi. Il recupero automatico di Title ID, Content ID e versione del software è stato completamente reso indipendente dal firmware installato.
In pratica il sistema non rischia più di interrompersi o restituire dati errati in seguito agli aggiornamenti distribuiti da Sony, aumentando notevolmente la robustezza generale del payload.
Sul fronte della stabilità sono stati corretti alcuni problemi che potevano causare il crash del processo SceShellCore durante la disconnessione di un client remoto.
La causa era legata alla gestione del segnale SIGPIPE e poteva provocare riavvii indesiderati del componente principale dell’interfaccia di sistema. Con la correzione introdotta nella versione 1.2.6 questo comportamento è stato eliminato, offrendo sessioni di debug molto più affidabili.
Anche l’esperienza d’uso è stata migliorata attraverso una nuova notifica di caricamento che mostra direttamente la versione del firmware in esecuzione sulla console, fornendo un riscontro immediato sul corretto avvio del payload.
Parallelamente è stato ulteriormente perfezionato il supporto alla modalità riposo, una caratteristica che già distingueva ps5debug-NG dalla concorrenza e che ora risulta ancora più stabile durante le sospensioni e le riattivazioni della console.
Dal punto di vista delle funzionalità, ps5debug-NG continua a offrire un set di strumenti estremamente completo.
Il payload permette di leggere e scrivere grandi quantità di memoria in streaming, eseguire scansioni avanzate di valori e pattern, utilizzare breakpoint software e watchpoint hardware, effettuare il single-step del codice, accedere ai registri della CPU e svolgere attività di debugging professionale direttamente sulla console.
Non mancano inoltre il disassembler integrato basato su Zydis, l’assembler Keystone per codice x86-64, le funzionalità di lettura e scrittura del kernel, il recupero della base del kernel, l’esecuzione di codice arbitrario, il caricamento di file ELF e numerose utility di sistema come notifiche a schermo, inoltro dei log kernel e riavvio della console.
Un ulteriore punto di forza rimane il sistema di rilevamento automatico della console tramite UDP Discovery sulla porta 1010, che semplifica notevolmente il collegamento dei client presenti sulla rete locale.
L’installazione continua a essere semplice e immediata: basta caricare l’ELF tramite il proprio loader preferito e il payload si occuperà automaticamente di iniettarsi all’interno di SceShellCore, avviando i servizi necessari per il debugging remoto.
Funzionalità principali
Ispezione e manipolazione dei processi
- Enumerazione dei processi (nome del processo + elenco PID).
- Lettura e scrittura della memoria del processo di destinazione tramite blocchi in streaming.
- Elenco delle mappe di memoria virtuale: intervalli, protezioni e nomi associati.
- Interrogazione dei metadati del processo: nome, percorso, titleId e contentId.
- Identificazione dell’app in primo piano (
0xBDDD0006): restituisce PID, titleId, contentId, nome del processo e versione del gioco, ricavata lato server dalparam.sfodel titolo. Utile per client che devono sapere cosa è in esecuzione senza scansionare tutti i processi. - Analisi dello stack lato server (
CMD_PROC_READ_STACK): il server percorre la catena RBP (fino a 64 frame) e include in un’unica risposta il valore RBP salvato per ogni frame, l’indirizzo di ritorno, i byte locali del frame e una finestra di 200 byte di codice attorno all’indirizzo di ritorno. I client evitano così numerosi round-trip TCP per ogni frame dello stack. - Modifica delle protezioni di memoria su regioni arbitrarie del processo di destinazione.
- Allocazione, deallocazione e allocazione guidata (hint allocation) della memoria all’interno di qualsiasi processo di destinazione.
Esecuzione di codice nel processo target
- Installazione di uno stub RPC (
CMD_PROC_INSTALL): inietta un trampoline riutilizzabile con thread dedicato nel processo target. - Chiamata di funzioni arbitrarie con fino a sei argomenti nei registri secondo ABI SysV e lettura del valore di ritorno in
rax(CMD_PROC_CALL). - Caricamento di ELF nei processi target, con esecuzione immediata dell’entry point (
CMD_PROC_ELF) oppure ritorno dell’entry per esecuzione successiva (CMD_PROC_ELF_RPC).
Debugger userland completo
- Attach a un singolo target con
CMD_DEBUG_ATTACH(attiva un canale di interrupt asincrono verso il client). - Breakpoint software fino a 30 slot tramite iniezione trasparente di
0xCC. - Watchpoint hardware fino a 4 registri DR0–DR3 con supporto read / write / read-write e granularità 1/2/4/8 byte.
- Controllo dei thread: lista, sospensione, ripresa, single-step e step per thread.
- Accesso completo ai registri: generali, FPU, YMM e debug registers.
- Continua / stop / halt dell’intero processo con un singolo comando.
- Pacchetti di interrupt asincroni su una connessione TCP separata, evitando polling lato client.
Accesso al kernel
- Ottenimento dell’indirizzo base del kernel.
- Lettura di memoria kernel arbitraria.
- Scrittura di memoria kernel arbitraria.
Disassembler Zydis integrato
Le grandi regioni di memoria restano sulla PS5. Tre comandi server-side riducono il traffico:
CMD_PROC_DISASM_REGION: stream compatto da 32 byte per istruzione con metadati di controllo flusso e RIP-relative.CMD_PROC_EXTRACT_CODE_XREFS: tutte le destinazioni di branch/call RIP-relative risolte e deduplicate.CMD_PROC_FIND_XREFS_TO: solo istruzioni che referenziano un indirizzo specifico.
Assembler Keystone integrato (x86-64)
Assembler Keystone cross-compilato (solo x86, ~4MB statici), esposto tramite opcode raw 0xBDAA0024. Permette di compilare codice assembly direttamente sulla console.
- Modalità userspace pura: non richiede processo attaccato né handshake
CMD_PROC_AUTH. - Richiede:
u64 base_addr; u32 ks_opt_syntax;+ testo asm (NUL non richiesto).ks_opt_syntaxè impostato di default su Intel; passa 1/2/4/8/0x10 per Intel/ATT/NASM/MASM/GAS. - Risposta:
CMD_SUCCESS+u32 byte_len; u32 insn_count;+ byte macchina, oppureCMD_ERROR+u32 ks_errno; u32 msg_len;+ errore leggibile dall’uomo di Keystone. - L’opcode è volutamente un valore letterale grezzo (senza macro
CMD_*) in modo che il setCMD_*pubblicato che alcuni client enumerano rimanga invariato.
Scansione memoria
- Scansione valori (
CMD_PROC_SCAN): 12 tipi di valore e 13 modalità di confronto (uguale, fuzzy, maggiore/minore, tra, aumentato, diminuito, cambiato ecc..). - Scansione iterativa (
SCAN_START→SCAN_COUNT→SCAN_GET): consente ai client di restringere un insieme di risultati lato server in più passaggi. - AOB scan (
CMD_PROC_SCAN_AOB): sequenze di byte con caratteri jolly??. - Multi-AOB scan (
CMD_PROC_SCAN_AOB_MULTI): molti schemi in un solo passaggio. - Autenticazione obbligatoria: i comandi di scansione richiedono un handshake
CMD_PROC_AUTHpreliminare.
Integrazione con UI di sistema
- Invia notifiche push allo schermo con testo UTF-8 arbitrario.
- Stampa su console kernel.
- Riavvio della console.
Klog forwarder
- La porta TCP 3232 trasmette in streaming il log del kernel a un client connesso (in stile
klog readerlato host). Rimane in esecuzione dopo la sospensione/riattivazione allo stesso modo del server principale.
Discovery
- Un risponditore broadcast UDP sulla porta
1010ripete una sequenza magica di handshake (0xFFFFAAAA) in modo che i client possano trovare la PS5 sulla LAN senza dover configurare un indirizzo IP fisso.
Supporto rest mode
- Il payload rimane attivo anche dopo la sospensione e la ripresa, senza bisogno di essere ricaricato. Un ciclo di supervisione interroga periodicamente la rete: quando la console entra in modalità di riposo, il server si chiude correttamente e, non appena la rete torna attiva, il server si riavvia e viene inviata una nuova notifica di “online”.
- Quando si avvia la modalità di sospensione, i client rilevano una netta interruzione della connessione sulla porta 744 e possono semplicemente riconnettersi al risveglio.
Design orientato alle prestazioni
- Socket non bloccanti con
TCP_NODELAY,SO_KEEPALIVEe blocchi di trasferimento di grandi dimensioni. - Il programma Zydis è stato compilato con le opzioni
-O3e-DNDEBUGper ottenere la massima velocità di decodifica. - Rimozione dei dati non più necessari in fase di collegamento (
-ffunction-sections -fdata-sections -Wl,--gc-sections). - I pacchetti di interruzione vengono trasmessi tramite un canale secondario dedicato per evitare di bloccare il ciclo di comando.
Architettura
L’artefatto distribuibile ps5debug-NG.elf è una build composta da due componenti:
- installer – PIE caricato tramite SDK umtx. Individua
SceShellCore, configura lo stato KEX del processo target e il filtro di origine delle syscall, quindi chiama la primitivainject_remote_thread_createlato SCE per eseguire il debugger embedded come thread interno aSceShellCore. - debugger – viene eseguito dentro
SceShellCoredopo l’iniezione. Implementa il protocollo di comunicazione, breakpoint / watchpoint / single-step, scansione memoria, RPC e iniezione ELF. È compilato indebugger/build/debugger.elfe poi incorporato come blob.rodatanell’installer tramite.incbin.
L’esecuzione del protocollo di comunicazione all’interno di SceShellCore permette a PT_ATTACH sui processi dei giochi di apparire, lato kernel, come un attach di origine SCE, condizione che il sistema di AppContext della PS5 consente. Un processo standalone che esegue PT_ATTACH invece viene rilevato e il gioco viene bloccato.
Panoramica sul protocollo di rete
| Porta | Protocollo | Direzione | Scopo |
|---|---|---|---|
| 744 | TCP | client → PS5 | Server comandi |
| 755 | TCP | PS5 → client | Interrupt di debug asincroni |
| 3232 | TCP | PS5 → client | Forwarder log kernel |
| 1010 | UDP | bidirezionale | Beacon di discovery (0xFFFFAAAA) |
Ogni comando inizia con un header di 12 byte:
struct cmd_packet {
uint32_t magic; // 0xFFAABBCC
uint32_t cmd; // 0xBDAA..., 0xBDBB..., 0xBDCC..., 0xBDDD...
uint32_t datalen; // lunghezza del body della richiesta
};
Segue poi la struttura fissa del comando (se presente), eventuali payload a lunghezza variabile e un valore di risposta uint32_t di stato.
Nota sugli status
Il valore uint32_t di stato su PS5 viene trasmesso con i bit a coppie invertite (la funzione net_send_int32 scambia le posizioni dei bit pari/dispari).
I client devono quindi “debit-swappare” i bit dello status ricevuto prima di confrontarlo con valori come CMD_SUCCESS, CMD_ERROR, CMD_DATA_NULL o CMD_ALREADY_DEBUG.
I dati successivi vengono inviati in forma grezza.
La documentazione completa può essere trovata in PROTOCOL.md e include ogni comando, struttura di pacchetto, enumerazione e codice di stato, con riferimenti file:line.
Copertura dei comandi
| Namespace | Quantità | Esempi |
|---|---|---|
| Info / ping | 5 | VERSION, FW_VERSION, BRANDING, PLATFORM_ID, NOP |
| Process | 26 | READ, WRITE, MAPS, CALL, SCAN_, DISASM_ |
| Debug | 18 | ATTACH, SET_BREAKPOINT, GETREGS, STEP, CONTINUE |
| Kernel R/W | 3 | KERN_BASE, KERN_READ, KERN_WRITE |
| Console | 6 | NOTIFY, PRINT, REBOOT, INFO, END, FOREGROUND_APP |
| Totale | 58 |
Changelog
Aggiunto il supporto iniziale ai firmware PS5 dalla serie 8.x alla 13.x nella versione 1.2.5. La versione 1.2.6 rende tale supporto pienamente operativo e introduce verifiche hardware effettuate direttamente su gran parte dei firmware supportati.
Supporto Firmware – Compatibilità operativa da 8.x a 13.x
- Verificato su hardware reale: Firmware 4.x, 6.x, 8.x, 9.x, 10.x e 12.x. Confermato il corretto funzionamento di scrittura memoria (poke), breakpoint software e hardware, tutti i tipi di watchpoint, rilevamento di Title ID, Content ID e versione del gioco.
- Firmware 3.x, 5.x, 7.x, 11.x e 13.x supportati ma non ancora completamente testati su hardware reale. Le correzioni introdotte sono progettate per essere indipendenti dalla versione del firmware. I feedback degli utenti sono benvenuti.
Scrittura Memoria (Poke) sui firmware 9.x e successivi
- Risolto un problema che impediva il funzionamento dei poke sui firmware 9.x e superiori. In precedenza le operazioni di scrittura fallivano silenziosamente poiché il kernel bloccava il vecchio metodo mdbg.
- Le scritture ora utilizzano un nuovo sistema basato sull’attraversamento delle page table tramite DMAP, ripristinando il corretto funzionamento di poke, cheat e patch sui firmware dalla serie 9.x fino alla 13.x.
- Il metodo mdbg continua a essere utilizzato sui firmware 8.x e precedenti.
- La memoria allocata dinamicamente viene ora pre-inizializzata (pre-faulted), garantendo che le scritture vengano applicate correttamente.
Breakpoint e Watchpoint sui Firmware 9.x – 13.x
- Abilitato il corretto funzionamento dei breakpoint e watchpoint hardware sui firmware dalla versione 9.00 alla 13.20, dove in precedenza risultavano inattivi senza segnalare errori.
- Corretta anche la gestione dei breakpoint software (INT3) sui firmware 9.x e successivi grazie allo stesso meccanismo DMAP introdotto per la funzione poke.
- Risolto un bug che causava l’interruzione del funzionamento di breakpoint e watchpoint dopo alcuni trigger sui firmware 11.x e 12.x. Il problema era dovuto alla mancata pulizia del registro di stato del debugger tra un evento e l’altro.
Rilevamento di Title ID, Content ID e Versione
- Il rilevamento di Title ID, Content ID e versione del gioco è ora completamente indipendente dal firmware installato.
- Le informazioni vengono ottenute tramite scansione diretta del processo in esecuzione anziché utilizzare offset specifici per ogni firmware, che erano cambiati nelle versioni 8.x e 12.x.
- Strumenti come Reaper e Cheater tornano a identificare correttamente il gioco in esecuzione anche sui firmware più recenti.
Corretto un Crash della Console alla Disconnessione del Client
- Risolto un problema che poteva causare il crash dell’intera console durante la chiusura improvvisa del client, ad esempio nel corso di una scansione memoria.
- Il bug provocava la terminazione del processo SceShellCore tramite SIGPIPE. Il segnale viene ora gestito correttamente, rendendo sicura la disconnessione del client su tutti i firmware supportati.
Migliorata la notifica di caricamento
- La notifica visualizzata all’avvio del payload ora mostra anche la versione del firmware installato tramite una nuova voce dedicata: “Firmware: x.yy”.
Crediti
- Aggiunto
@Pharaoh2kalla sezione dei ringraziamenti speciali per il contributo al progetto.
Documentazione aggiornata
PROTOCOL.mdè stato completamente riscritto per riflettere accuratamente lo stato attuale del codice sorgente.- Documentati tutti i comandi, le strutture dei pacchetti, i codici di stato e le enumerazioni supportate.
- Aggiornata ed espansa anche la tabella dei firmware nel README con informazioni dettagliate sullo stato di verifica di ogni release.
Limitazioni note
- I firmware 3.x, 5.x, 7.x, 11.x e 13.x sono ufficialmente supportati e con ogni probabilità pienamente funzionanti, ma non hanno ancora completato l’intero ciclo di test su hardware reale.
- Gli sviluppatori invitano gli utenti a segnalare eventuali risultati e feedback per completare la validazione.
- Il comportamento dei firmware 5.x e precedenti rimane invariato rispetto alle versioni precedenti del payload.
Download: ps5debug-NG v1.2.6
Download: Source code ps5debug-NG v1.2.6
Alcune parti di questo articolo sono state generate con l’aiuto dell’intelligenza artificiale. Questo articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.🔥 Prodotti in promozione e articoli più venduti: PS5
Vedi altri prodotti PS5
Ultimo aggiornamento 2026-06-16 / Link di affiliazione / Immagini da Amazon Product Advertising API
![[Scena PS5] Rilasciato PS5 ezRemote Client v2.06 ora con OpenGL, UI più reattiva e fix avvio shortcut dashboard](https://www.biteyourconsole.net/wp-content/uploads/PS5ezremote-238x178.webp)


![[Scena PS5] Rilasciato PS5 ezRemote Client v2.06 ora con OpenGL, UI più reattiva e fix avvio shortcut dashboard](https://www.biteyourconsole.net/wp-content/uploads/PS5ezremote-100x75.webp)

