Pubblicato un nuovo aggiornamento per ps5debug-NG, il potente debugger open source per PlayStation 5 jailbroken nato come evoluzione del celebre ps5debug di Ctn.

Con la versione 1.2.4, il progetto continua a consolidarsi come uno degli strumenti più avanzati e completi per lo sviluppo homebrew, il reverse engineering e la creazione di trainer e cheat dedicati alla console Sony.
🚀 New version released for OpenSourcereR-dev – ps5debug-NG!
Version: 1.2.4
Check it out here: https://t.co/cexWmYFMtO #OpenSource #DevUpdate #RepoPulse-Info— 🇨🇵 nexgen infinity 🇨🇵 (@nexgen999) May 30, 2026
Il software viene iniettato direttamente all’interno di SceShellCore e trasforma la PS5 in una piattaforma di debugging remoto accessibile tramite protocollo TCP.
Uno dei suoi principali punti di forza è la piena compatibilità con il vecchio ps5debug 1.0b5, caratteristica che consente ai principali client già esistenti, come Reaper Studio e numerosi strumenti personalizzati sviluppati dalla community, di continuare a funzionare senza alcuna modifica.
Le funzionalità offerte da ps5debug-NG coprono praticamente ogni aspetto del debugging avanzato. Il payload permette di leggere e scrivere la memoria dei processi, gestire breakpoint software e hardware, eseguire il single-step del codice, monitorare registri e thread.
Inoltre, permette di effettuare anche scansioni della memoria tramite ricerca di valori o pattern AOB multipli, utilizzare strumenti integrati di disassemblaggio e assemblaggio basati rispettivamente su Zydis e Keystone, eseguire codice arbitrario, caricare file ELF e accedere direttamente alle strutture del kernel.
Sono disponibili notifiche a schermo, inoltro dei log del kernel, riavvio del sistema e supporto alla modalità riposo, consentendo al debugger di rimanere operativo anche dopo il risveglio della console.
L’aggiornamento 1.2.4 introduce una serie di miglioramenti significativi focalizzati soprattutto sulla stabilità, sulle prestazioni e sulla gestione della memoria.
Una delle novità più importanti riguarda il comando CMD_PROC_MAPS, che ora è in grado di rilevare automaticamente anche le cosiddette regioni ausiliarie di Sony, come SceGnm, SceAgc, JIT e DMEM.
Queste aree di memoria normalmente non sono visibili attraverso il tradizionale vm_map e vengono ora individuate tramite un sistema di scansione delle page table basato su DMAP, indipendente dalla versione del firmware installato.
Le operazioni di lettura della memoria beneficiano inoltre di un nuovo percorso ibrido che accelera sensibilmente l’accesso alle regioni ausiliarie, migliorando l’efficienza delle analisi e delle scansioni effettuate dai client collegati.
Sul fronte del debugging, gli sviluppatori hanno corretto i problemi relativi ai breakpoint software che potevano generare tempeste di eccezioni SIGSEGV in ambienti multi-thread, una situazione che in alcuni casi comprometteva la stabilità delle sessioni di debug.
Sono stati inoltre perfezionati gli algoritmi di scansione AOB multi-pattern, ridotta la latenza degli eventi associati ai breakpoint e introdotti nuovi meccanismi di locking per prevenire corruzioni o conflitti quando più client tentano di accedere contemporaneamente al debugger.
Anche il processo di installazione è stato ottimizzato, risultando più rapido e affidabile, mentre il sistema di rilevamento del firmware è stato completamente riscritto per garantire un codice più pulito, moderno e facilmente manutenibile nel lungo periodo.
ps5debug-NG si rivolge principalmente agli sviluppatori homebrew che desiderano testare e analizzare i propri eseguibili ELF, ai creatori di trainer e cheat interessati a individuare offset e strutture dati nei giochi, ai reverse engineer impegnati nello studio del software PS5 e, più in generale, agli utenti avanzati che vogliono sfruttare tutte le potenzialità offerte da una console jailbroken.
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 |
Changelog
Funzionalità
- CMD_PROC_MAPS ora amplia l’elenco
vm_mapincludendo anche le regioni ausiliarie Sony (SceGnm,SceAgc,JITeDMEM) che normalmente non vengono rilevate davm_map. Queste aree vengono individuate tramite una scansione delle tabelle delle pagine x86-64 eseguita lato kernel sul DMAP. La funzione è indipendente dalla versione del firmware grazie al rilevamento dinamico degli offset pmap e alla validazione dei risultati. In caso di errore, viene automaticamente utilizzato il normale risultato restituito davm_map. - Percorso ibrido di lettura della memoria: Le letture vengono indirizzate direttamente tramite DMAP per le regioni ausiliarie non presenti in
vm_map, mentre per tutte le altre viene utilizzatomdbg, che funge anche da fallback. Questo migliora le prestazioni delle scansioni sulle regioni ausiliarie sia nel comandoCMD_PROC_READsia nei percorsi di scansione lato server. Nessuna modifica al protocollo; risultati identici byte per byte.
Correzioni
- Correzione race condition dei breakpoint software in wait4: Eliminata la tempesta di errori
SIGSEGVin scenari multi-thread durante la gestione dei breakpoint nell’epilogo delle funzioni. La correzione include la gestione di assorbitori obsoletiTRAP_TRACE/TRAP_BRKPT, il rewind controllato dei thread correlati tramitePT_LWPINFO, cache rapide basate solo su RIP, incremento temporaneo dell’authid durante il riarmo dei breakpoint e l’introduzione di una protezione specifica contro le tempeste diSIGSEGV. - Scansione AOB multi-pattern: La modalità “unique” ora termina solo quando il numero di pattern invalidati è maggiore o uguale a
pat_count, risolvendo problemi di risultati erroneamente segnalati come unici e scansioni troncate prematuramente.
Prestazioni / robustezza
- Latenza eventi breakpoint (BP-event): Ridotto il timeout di select da 1000 a 100 microsecondi e quello di poll da 100 a 50 microsecondi.
- Lock dello stato di debug per singolo comando (0xBDBB): Introdotto un meccanismo di locking per prevenire la corruzione della tabella degli slot dei breakpoint quando più client operano contemporaneamente.
- Installer: Aggiunta una protezione contro il doppio caricamento tramite controllo di loopback sulla porta 744, applicazione preventiva delle rilocazioni e uso di operazioni
ptrace_ioin batch per accelerare l’iniezione, sostituendo il precedente sleep fisso conwait4.
Refactoring
- Rilevamento del firmware: Riscritto utilizzando una struttura diretta basata su
switch(fw & 0xffff0000)con annotazioni specifiche per ogni versione. Il comportamento è rimasto invariato ed è stato verificato come equivalente all’implementazione precedente.
Download: ps5debug-NG v1.2.4
Download: Source code ps5debug-NG v1.2.4
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-10 / Link di affiliazione / Immagini da Amazon Product Advertising API


![[Scena PS5] Rilasciato Y2JB v1.6: Supporto firmware 13.40, validazione payload, elfldr aggiornato e backup dedicati senza PSN](https://www.biteyourconsole.net/wp-content/uploads/RemoteJSLoader-238x178.webp)


![[Scena PS5] Rilasciato Y2JB v1.6: Supporto firmware 13.40, validazione payload, elfldr aggiornato e backup dedicati senza PSN](https://www.biteyourconsole.net/wp-content/uploads/RemoteJSLoader-100x75.webp)