Dopo l’ultima release di ps5-kstuff con il supporto per i file fPKG della console PlayStation 4 su PlayStation 5, sono state poste molte domande sulla possibilità di portare questo su altre versioni del firmware (in particolare i firmware 4.50 e 4.51).
Questo perchè chi monta tali firmware non può eseguire un downgrade alla versione 4.03, anche se questi sono ancora vulnerabili a tutti gli effetti.
Tuttavia, eseguire il porting di questo progetto su altre versioni del firmware potrebbe rivelarsi un compito impegnativo a causa dell’uso di un XOM personalizzato, che ha reso difficile la ricerca degli offset necessari.
Le categorie principali di offset discusse dal developer Sleirsgoevy includono:
- Offset dei dati del kernel: Questi offset possono essere trovati nei dump dei dati del kernel che non sono protetti da XOM.
- Offset dei testi del kernel Indicati dai dati del kernel.
- Offset “doreti_iret”: Questo offset è fondamentale per stabilire la primitiva di singlestep del kernel utilizzata per trovare altri offset.
- Offset trovati tramite il single-stepping delle funzioni del kernel.
- Offset trovati dai log di ps5-kstuff, comunemente denominati “parasites” nella fonte.
Offset dei dati del kernel
Questa categoria comprende vari offset chiave, tra cui l’offset IDT
, l’offset TSS
(per CPU), l’offset PCPU
(per CPU, che rappresenta la base GS del kernel), l’offset sysentvecs
(nativo e PS4) e crypt_singleton_array
.
La ricerca di questi offset è stata condotta principalmente attraverso l’analisi dei dump di dati del kernel non protetti da XOM.
Offset dei testi del kernel indicati dai dati del kernel
Questi offset sono principalmente costituiti dagli handler degli interrupt e possono essere individuati nel dump dell’offset IDT
. Per ps5-kstuff, due di questi offset sono particolarmente importanti: Xinvtlb
e Xjustreturn
.
Offset “doreti_iret”
Questo offset è cruciale per il progetto, ma è difficile da individuare poiché si tratta di un offset di testo del kernel non collegato direttamente ai dati del kernel.
Offset trovati dal single-stepping delle funzioni del kernel
Questa sezione spiega come trovare alcuni offset chiave, come rdmsr
, wrmsr_ret
e il gadget “rep movsb; pop rbp; ret”, utilizzati nei programmi di tracciamento per la lettura/scrittura della memoria del kernel.
Offset trovati dai log di ps5-kstuff (“parasites”)
I log di ps5-kstuff includono “parasites” che possono essere importanti o meno per il progetto. Questi “parasites” sono identificati e gestiti in base alla loro importanza.
Lo sviluppatore Sleirsgoevy ha suggerito l’idea di creare uno script eseguibile su PC che possa connettersi alla console PlayStation 5 tramite la rete e raccogliere in modo automatico gli offset necessari.
Questa proposta mira a semplificare la ricerca degli offset, eliminando gran parte del lavoro manuale coinvolto nel processo.
Fonte: github.com