Lo sviluppatore Flat_z ha condiviso nuove informazioni sulla gestione della memoria GPU e sul Direct Memory Access (DMA) su console PlayStation, soffermandosi in particolare sul codice presente nel file GpuMemoryUtil.java
.
La funzione copyDirectMemoryDMA, scritta in Java, utilizza tre chiamate fondamentali: una per bloccare la memoria, una per copiare i dati tramite DMA e una per sbloccarla nuovamente.
Secondo flat_z, il blocco e lo sblocco della memoria sono essenziali per evitare bug imprevisti. Inoltre, per sfruttare questa tecnica, è necessario ottenere gli indirizzi fisici e modificare la tabella delle pagine.
Nel corso delle sue analisi, flat_z ha spiegato di aver sempre usato la scrittura GPU per eseguire operazioni di memoria avanzate, motivo per cui il suo metodo ha continuato a funzionare anche sui firmware più recenti.
Ha inoltre evidenziato come questa tecnica possa essere utilizzata come parte di un attacco all’Hypervisor (HV). In precedenza, aveva implementato una soluzione simile in Lua, riempiendo un command buffer e inviandolo alla GPU.
Inoltre, ha sottolineato che all’interno del sistema BD-J esiste una funzione dedicata alla copia DMA, che potrebbe essere sfruttata per operazioni simili.
Dal punto di vista della sicurezza, flat_z ha affermato che l’uso della scrittura GPU permette di bypassare le protezioni e scrivere direttamente in specifiche regioni di memoria, rendendo questa tecnica particolarmente interessante per scenari legati ai sistemi AGX.
Ha anche menzionato che le chiavi di sicurezza della PlayStation 5 sono generate in modo gerarchico dal secldr, rendendo più difficile sfruttare determinati exploit.
Per il debugging avanzato, ha dichiarato di utilizzare UART e alcune funzioni personalizzate per ottenere un output dettagliato, compreso il backtrace.
Inoltre, ha fatto riferimento alla funzione sceSblACMgrGetDeviceAccessType, che potrebbe essere rilevante per ulteriori analisi di sicurezza.
Fonte: discord.com