Il developer m0rph3us1987 ha da poco pubblicato una nuova versione di PS4GDB costituito da due componenti. l primo componente è gdbstub
in esecuzione sulla PS4 e il secondo è ps4gdb_desktop
.
GDB o più semplicemente GNU debugger è uno strumento che ci permette di vedere cosa succede all’interno di un altro programma mentre questo è in esecuzione o cosa stava facendo un altro programma nel momento in cui si è bloccato, gdbstub
si trova integrato in Mira sotto forma di plugin.
Here is a small write-up on how to debug PS4 applications.https://t.co/rBiUmMYO1B
— m0rph3us1987 (@m0rph3us1987) January 3, 2022
PS4GDB di suo ha implementato tutte le funzionalità tranne i registri di debug x86. Quando lo stub viene caricato, crea un nuovo processo del kernel, questo processo ascolterà quindi le connessioni in entrata sulla porta 8146
.
A cosa serve la porta 8146?
In qualche modo dobbiamo dire alla PS4 da quale processo vogliamo eseguire il debug, e poiché l’hardcoding dei pid in PS4GDB
non è un’opzione, abbiamo bisogno di un modo per comunicare e dire a PS4GDB
cosa dovrebbe fare per noi.
Questa comunicazione avviene tramite la porta 8146
. PS4GDB genera un piccolo server RPC, che accetta un paio di comandi. Qui è dove entra in gioco il secondo componente ps4gdb_desktop
.
ps4gdb_desktop
ps4gdb_desktop
è il componente in esecuzione sul PC in grado di comunicare con PS4GDB
. Il programma è stato scritto in Go (linguaggio di programmazione open source sviluppato da Google) mentre il protocollo dietro di esso si dimostra abbastanza banale.
Questa applicazione permette di leggere un elenco di processi in esecuzione sulla console PS4, collegarti a un determinato pid o uccidere il processo del kernel PS4GDB
.
Per ottenere un elenco dei processi in esecuzione sulla console PS4, bisogna solo eseguire il seguente comando (cambiare l’indirizzo IP con l’indirizzo IP della console PS4).
ps4gdb_desktop 192.168.0.102:8146 get-pids
Questo dovrebbe dare un risultato simile a questo:
Questa immagine mostra i processi in esecuzione sulla PS4 e i corrispondenti pid. Se ora, ad esempio, vogliamo eseguire il debug di SceRemotePlay
, eseguiremo il seguente comando:
ps4gdb_desktop 192.168.0.102:8146 attach 95
Questo è fondamentalmente tutto ciò che devi sapere su ps4gdb_desktop
. Nella prossima sezione mostrerò come connetterti a PS4GDB con gdb ed eseguire il debug di un’applicazione.
Download: ps4gdb_desktop.go
Fonte: twitter.com