Il developer OpenSourcereR-dev ha rilasciato una primissima versione di ps5debug-NG, un nuovo e avanzato debugger payload per PlayStation 5 jailbroken che rappresenta un’evoluzione diretta del progetto originale ps5debug di Ctn.

Questa nuova versione si distingue per una struttura più moderna, prestazioni migliorate e un livello di integrazione molto più profondo con il sistema PS5, al punto da diventare uno degli strumenti più completi oggi disponibili per il debugging e l’analisi runtime sulla console Sony.
This looks promising https://t.co/M3HP5LeKhQ
— Echo Stretch (@StretchEcho) May 14, 2026
Alla base del progetto c’è un server TCP in userland che viene iniettato direttamente nel processo SceShellCore, cioè il cuore della shell di sistema della PS5.
Questo approccio permette di mantenere una compatibilità completa con il protocollo originale, rendendo ps5debug-NG utilizzabile con i client già esistenti senza necessità di modifiche.
L’obiettivo principale è garantire continuità con l’ecosistema precedente, ma introducendo al tempo stesso funzionalità più avanzate e una maggiore stabilità nelle sessioni di debug.
Dal punto di vista delle funzionalità, ps5debug-NG offre un set estremamente ricco di strumenti per l’analisi e il controllo dei processi.
È possibile effettuare attach e detach ai processi attivi, inserire fino a 30 software breakpoints utilizzando l’istruzione 0xCC, e gestire 4 hardware watchpoints tramite i registri DR0-DR3 con granularità fino a singolo byte.
Il debugger supporta inoltre single-step, controllo dei thread, sospensione e ripristino dell’esecuzione, oltre all’accesso completo ai registri CPU, inclusi GPR, FPU, YMM e i registri di debug.
Una parte centrale del sistema è la gestione avanzata della memoria. Il payload permette di leggere e scrivere in chunk, enumerare le mappe di memoria virtuale, modificare le protezioni delle pagine, allocare e liberare memoria dinamicamente e utilizzare un memory scanner avanzato con supporto a value scan, AOB scan e pattern multipli in sessioni iterative.
Questo rende lo strumento particolarmente potente per reverse engineering e analisi dinamica dei giochi.
ps5debug-NG introduce anche un sistema completo di code execution e RPC. È possibile installare uno stub RPC persistente, invocare funzioni arbitrarie seguendo la SysV ABI, caricare file ELF direttamente in un processo target e utilizzare un assembler Keystone integrato per generare codice macchina direttamente sulla console.
Questo riduce la dipendenza da tool esterni e velocizza notevolmente il workflow di sviluppo e testing.
Un’altra componente fondamentale è il disassembler integrato basato su Zydis, che consente di analizzare intere regioni di codice direttamente sulla PS5, riducendo drasticamente il traffico di rete rispetto ai metodi tradizionali.
Il sistema include anche la capacità di estrarre XREF e individuare riferimenti incrociati nel codice, migliorando ulteriormente le possibilità di reverse engineering.
Sul fronte kernel, ps5debug-NG offre accesso completo alla base del kernel e la possibilità di eseguire operazioni di lettura e scrittura arbitraria in memoria kernel, ampliando enormemente le capacità di debug avanzato e modifica runtime del sistema.
Tra le funzionalità aggiuntive troviamo notifiche a schermo sulla PS5, forwarding del kernel log tramite porta dedicata, discovery automatico via UDP per facilitare la connessione dei client, supporto completo al Rest Mode con sopravvivenza a suspend e resume e la possibilità di riavvio remoto della console.
Tutto questo contribuisce a rendere l’esperienza di debugging più fluida e continua anche durante lunghe sessioni di lavoro.
Il payload è compatibile con una vasta gamma di firmware PS5, coprendo le famiglie dalla serie 3.xx fino alla 8.xx, incluse le versioni intermedie come la 7.5x.
Il sistema include controlli interni sul firmware e interrompe l’esecuzione in modo sicuro se viene rilevata una versione non supportata, garantendo maggiore stabilità ed evitando crash indesiderati.
Funzionalità principali
Ispezione e manipolazione dei processi
- Enumerazione dei processi (
p_comm+ lista PID). - Lettura e scrittura della memoria dei processi in blocchi streaming.
- Elenco delle mappe di memoria virtuale: intervalli, protezioni e nomi dei backing.
- Query dei metadati del processo: nome, percorso, titleId, 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. - Stack walk lato server (
CMD_PROC_READ_STACK): il server percorre la catena RBP da solo (fino a 64 frame) e aggrega per ogni frame RBP salvato, indirizzo di ritorno, byte locali del frame e una finestra di 200 byte attorno all’indirizzo di ritorno in un’unica risposta. In questo modo il client evita molte richieste TCP per ogni frame dello stack. - Modifica delle protezioni di memoria su regioni arbitrarie.
- Allocazione / rilascio / hint-allocazione di memoria dentro qualsiasi processo target.
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 |
Download: ps5debug-NG v1.2.2
Download: Source code ps5debug-NG v1.2.2
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)

