• Pepsyz Modding est de retour sur xfnolimit.fr !

    Le forum est en cours de modernisation. Vous pouvez déjà retrouver la communauté, consulter les anciens sujets et partager vos projets autour du gaming, du modding et de la programmation.

    Important : merci de respecter la loi, les droits d’auteur et le règlement du forum. Les téléchargements illégaux et les contenus piratés ne sont pas autorisés. Sauvegardez toujours vos données avant toute modification de votre matériel ou de vos logiciels.






  • Salut Invité notre forum PepsyzModding recrute en tant que staff !

Cturt Décrit La Procédure Pour Lancer Linux

lolo68

Premium
Premium
Le développeur CTurt ne lâche pas le morceau. Alors qu'il avait annoncé l'arrêt de ses travaux
sur la PlayStation 4, après les avoir dévoilés sur son site, il vient de mettre à jour la partie 3
de son dossier consacré à l'exploitation du kernel de la PS4.


in-ps4-cturt-ajoute-la-procedure-pour-lancer-linux-1.jpg



Cette partie se nomme humblement "Booting Linux". CTurt y explique comment lancer le système d'exploitation grâce à PS4-kexec (publié par la team Fail0verflow).

Il indique tout d'abord que vous allez devoir créer votre propre distribution Linux compilée avec le kernel linux team Fail0verflow. Puis, vous devrez créer vos propres paramètres d'initialisation (propre à chaque console à priori).

Il faut copier les fichiers qui passent par la RAM vers une clé USB, relocaliser le Kexec pour le rentrer dans le noyau et encore le mettre en oeuvre dans la compilation.

To create your own Linux distro, you'll need to compile fail0verflow's fork of the Linux kernel, and then create your own initramfs.

The easiest way to get these files into RAM is to copy them to a USB flash drive formatted as FAT32, which can then be read from once you've broken out of sandbox as explained earlier (/mnt/usb0/). You could also download them over the network if you prefer.

You'll also need to compile the ps4-kexec system call implementation as a relocatable binary and include it in your kernel exploit.

For your kernel payload you should copy the system call somewhere into kernel address space (like DT_HASH_SEGMENT), and run kexec_init to install it (which is guaranteed to be at offset 0 from the binary):

void *DT_HASH_SEGMENT = (void *)0xffffffff82200160;
memcpy(DT_HASH_SEGMENT, kexec, kexecSize);

void (*kexec_init)(void *, void *) = DT_HASH_SEGMENT;
kexec_init(NULL, NULL);
Once you return to userland, you can load the kernel and initramfs from USB, pass them to kexec, and finally reboot!

FILE *fkernel = fopen("/mnt/usb0/bzImage", "r");
...

FILE *finitramfs = fopen("/mnt/usb0/initramfs.cpio.gz", "r");
...

char *cmdLine = "panic=0 clocksource=tsc radeon.dpm=0 console=tty0 console=ttyS0,115200n8 "
"console=uart8250,mmio32,0xd0340000 video=HDMI-A-1:1920x1080-24@60 "
"consoleblank=0 net.ifnames=0 drm.debug=0";

syscall(153, kernel, kernelSize, initramfs, initramfsSize, cmdLine);

free(kernel);
free(initramfs);

// Reboot
int evf = syscall(540, "SceSysCoreReboot");
syscall(546, evf, 0x4000, 0);
syscall(541, evf);
syscall(37, 1, 30);

Des informations complémentaires sont disponibles à l'adresse suivante : http://cturt.github....s4-3.html#linux
 
Retour
Haut de la page