February 12, 2010 // 9:22 pm
- We are happy to report that the PS3 Hypervisor LV1 and Bootloader LV0 are dumped from the PlayStation 3's RAM after getting our SX28 Hardware
a few days ago, utilizing code for glitching and mashing buttons for hours - the exploit
eventually will get triggered!
We tried a few different ways to dump out the real memory - the biggest "problem" was the fact that you can't just simply use File I/O code in a kernel module. Furthermore, you can't call the lv1_peek
function from user mode either.
Luckily, resident DEV kakarotoks
was up to the challenge. After some trial and error (and too many PS3 crashes!) he made a kernel module
which maps the "real" PS3 memory to a device in /proc
. The /proc
area lets the kernel and userland interact some.
Basically, the device /proc/ps3_hv_mem
is created when the kernel module is inserted. Once it is inserted, you can use dd
to read the device. By doing this, the device gets passed arguments, which is passed along to lv1_peek
- which in turns reads out the real memory.
Be advised, don't go beyond the PS3's upper memory limit. At around 260MB, the PS3 tends to crash - it does not like trying to read beyond RAM limits! So, for usage:
First, run the exploit, and get it triggered and working - that's the hard part!
Next, download the attached file
, inside are three files, a Makefile
, the ps3_hv_mem.c
and a pre-compiled version. Stick these in a folder, and run make. It will then compile a kernel module for you (ps3_hv_mem.ko
, or use the pre-compiled one). Then simply type: sudo insmod ps3_hv_mem.ko
Enter your password and check /proc
for a ps3_hv_mem
entry, or your dmesg. If it is there - let the dumping begin!
You can dump out the PS3 Hypervisor and Bootloader (and the rest of the real memory) via dd
. You can use the command:
dd if=/proc/ps3_hv_mem of=PS3_Memory_Dump.bin bs=1024 count=10K
That command will dump out 10485760 bytes, or about 10MB - which nicely includes the goodies like LV0 and LV1. Finally, you can also increase the count, which will increase the amount dumped (multiply by blocksize).