Il developer DeathRGH ha da poco rilasciato un nuovo aggiornamento di Frame4, un’estensione evoluta della libreria ps4debug, progettata per offrire strumenti avanzati di debug e manipolazione su console PlayStation 4 jailbroken.
Il software si rende compatibile con diverse versioni del firmware, tra cui 5.05, 6.72, 9.00 e 11.00, e consente operazioni tecniche come l’analisi dei moduli caricati, l’accesso a informazioni dettagliate sulla console (inclusi PSID, firmware e SDK), la gestione dei processi attivi e la scansione della memoria attraverso pattern di tipo AOB (Array of Bytes).
Frame4 permette di agganciare anche trappole per crash (fatal hook) e backtrace, rendendolo utile per lo studio di errori e malfunzionamenti.
Supporta inoltre la gestione dei coredump, le patch per i firmware compatibili e consente l’accesso alla memoria fisica e del kernel, incluse le mappe virtuali.
Funzionalità
- Elenco dei processi.
- Elenco dei moduli.
- Mappa della memoria virtuale (sia del kernel che dello spazio utente).
- Lettura/Scrittura della memoria (sia del kernel che dello spazio utente).
- Lettura/Scrittura della memoria fisica (in contesto kernel).
- Debugger (per lo spazio utente).
- Chiamata di funzioni (RPC).
- Server UART sulla porta 3321.
- Server HTTP sulla porta 2812.
- Impostazione della temperatura soglia della ventola.
- Informazioni sulla console (PSID, versione SDK/UPD, info del kernel, ecc..).
- Notifiche di sistema.
- Caricamento di file ELF.
- Caricamento di moduli SPRX.
- (e altro ancora).
Patch
- Disabilita ASLR.
- Monta
/user
su qualsiasi processo. - Disabilita la creazione di coredump.
- Rimuove i controlli del firmware per i file PKG (nota:
param.sfo
,elf/prx
necessitano ancora del backporting). - Rimozione dello spam di I/O asincrono (blkno) su firmware 5.05.
- Patch per il kernel panic causato da pagine da 2 MB (da firmware 9.00 in su).
- Patch per il caricamento di file ELF nel kernel (
"vm_fault_copy_wired: page missing"
). - Patch a
VirtualQuery
per permettere l’uso disceKernelVirtualQuery
su pagine contrassegnate come sistema. - (e altro ancora).
Syscall
Frame4 installa le seguenti syscall personalizzate:
107 sys_proc_list
108 sys_proc_rw
109 sys_proc_cmd
110 sys_kern_base
111 sys_kern_rw
112 sys_console_cmd
115 sys_kern_cmd
Firmware PS4 supportati
- 5.05
- 6.72
- 7.02
- 9.00
- 11.00 (Nota: il supporto per 11.00 è appena stato testato; ogni feedback è utile!)
Se ti trovi su 6.72 o 7.02, si consiglia di aggiornare a 9.00!
Librerie compatibili
- C#
- C++ (in lavorazione)
- JavaScript
Obiettivi
- Permettere a Frame4 di essere caricato insieme a ps4debug. Fatto!!
- Sostituire le syscall (107-112) usate per i comandi, per evitare conflitti con ps4debug.
- Abbandonare la compilazione multipla e unificare tutto (come già fatto da Dizz per ps5debug).
- Implementare il caricamento di SPRX senza dipendere da GoldHEN.
- Correggere lo scanner su console.
- Evitare l’hijack di ShellCore e creare un proprio processo.
- Spostare nello spazio utente tutte le funzionalità che non richiedono l’accesso al kernel.
Hook per trappole fatali
Aggiunge informazioni dettagliate alle trappole fatali e avviare un riavvio pulito. Esempio:
Fatal trap 12: page fault while in kernel mode
#
# registers:
# rdi 0x880AE1DE0
# rsi 0xFFFFFFFFADBB0000
# rdx 0x1000
# rcx 0x200
# r8 0xFFFFFFFFD7049740
# r9 0x92660BA0A
# rax 0xFFFFFF806F71FA28
# rbx 0xFFFFB8E8075F10B0
# rbp 0xFFFFFF806F71F980
# r10 0x880AE2DE0
# r11 0xFFFFFF806F71FB80
# r12 0x0
# r13 0xFFFFFFFFD9524010
# r14 0x8949C03148000041
# r15 0xFFFFB8E807582DA0
# rip 0xFFFFFFFFD70494D6
# rsp 0x20
#
# kernelbase: 0xFFFFFFFFD6DD8000
#
# backtrace (0xFFFFFF806F71F970):
# 7 <kernelbase> + 0x7DE222
# 11 <kernelbase> + 0x274C010
# 13 <kernelbase> + 0xB7B72
# 16 <kernelbase> + 0x274C010
# 20 <kernelbase> + 0xB7A82
# 59 <kernelbase> + 0x2DF981
# 67 <kernelbase> + 0x274C010
# 71 <kernelbase> + 0x2DF338
# 79 <kernelbase> + 0x3F36E4
# 99 <kernelbase> + 0x274C010
# 103 <kernelbase> + 0x17D83A
# 108 <kernelbase> + 0x271740
# 116 <kernelbase> + 0x274C010
# 122 <kernelbase> + 0x2714BD
# 123 <kernelbase> + 0x2714D6
# 125 <kernelbase> + 0x2714DE
#
Hook per il backtrace
Aggiungere dettagli ai log di crash, evitando il calcolo manuale dell’offset del modulo. Esempio:
...
#
# backtrace:
# 0x0000000000BB7BF1 </data/default_mp.elf> + 0x7B7BF1
# 0x0000000000B924EA </data/default_mp.elf> + 0x7924EA
# 0x00000000009D75A4 </data/default_mp.elf> + 0x5D75A4
# 0x000000000083BE99 </data/default_mp.elf> + 0x43BE99
# 0x00000008000075C2 </i8fsuSWSEf/common/lib/libkernel.sprx> + 0x75C2
# 0x0000000000000000
#
...
Changelog
- Elenco dei moduli.
- Informazioni estese sulla console (inclusi PSID, SDK, versione del firmware, …).
- Gestione estesa dei processi per ripresa, arresto e terminazione.
- Scansione AOB di base.
- Hook per trappole fatali.
- Hook per backtrace.
- Patch per coredump su tutti i firmware (evita la schermata blu quando un gioco va in crash).
- Patch per
sys_virtual_query
(permette di interrogare pagine contrassegnate come sistema). - Mappa della memoria virtuale del kernel.
- Lettura della memoria fisica in contesto kernel.
Nota: AFR è stato rimosso in questo aggiornamento a causa di problemi nel metodo con cui era implementato (scriveva all’inizio della base del kernel). Potrebbe essere reintegrato in futuro; per ora si consiglia di usare il plugin GH.
Download: Frame4 v0.3.2
Download: Source code Frame4 v0.3.2
Fonte: github.com