Following his previous releases, today PlayStation 4 developer m0rph3us1987 let us know on Twitter that he's abandoning the PS4Ninja project so he's decided to share the PS4Ninja file browser homebrew application's source code with PS4 community developers!
Download: ps4ninja-master.zip / GIT / ps4ninja_672.7z (18 KB)
From the Readme.txt, to quote: How to build
1) Go into ps4ninja_win\Browser\PS4NINJA and type
This will build minlib, ps4ninja (PS4 part) and create payload_176.bin.
2) To build the windows application, open the VS Solution and build it.
3) You can manually build any of the components by entering into the directory and type "make".
From Ybin.me (PS4-EAP-KEY-DUMPER-672.bin):
How to mount EAP partitions on Windows guide:
Mounting PS4 HDD On Windows, Only Specific Partitions
cmtab
eap key partitions (i've chosen eap_vsh, update, user)
folders (according to cmtab)
and of course, your keys
in the case of user partition the number of the partition will be 27 so you do this
subtract 27 with 1
this will give 26
then you left shift 32
this will give 111669149696
Modify .wslconfig and cmtab accordingly! (path to bzImage, directory where to mount eap partitions, keys.bin location, ivoffset, etc)
Cheers to @mota for sharing the news in the PSXHAX Shoutbox!
Download: ps4ninja-master.zip / GIT / ps4ninja_672.7z (18 KB)
From the Readme.txt, to quote: How to build
1) Go into ps4ninja_win\Browser\PS4NINJA and type
Code:
make
2) To build the windows application, open the VS Solution and build it.
3) You can manually build any of the components by entering into the directory and type "make".
From Ybin.me (PS4-EAP-KEY-DUMPER-672.bin):
Code:
// Decrypted EAP partition key and print it into klog
// key for /eap_user, /User, /Update
void getEAPPartitionKey(){
void(*bzero)(void *buf, size_t len) = (void *)0xFFFFFFFF82613B00;
void(*icc_nvs_read)(size_t id, size_t no, size_t offset, size_t len, unsigned char *buff) = (void *)0xFFFFFFFF82639CD0;
void(*sceSblGetEAPInternalPartitionKey)(unsigned char *encBuffer, unsigned char *decBzffer) = (void*)0xFFFFFFFF827B1B00;
// Allocate needed space
struct malloc_type *mt = ps4KernelDlSym("M_TEMP");
unsigned char *encNVSKeyBuffer = (unsigned char*)malloc(0x70, mt, M_ZERO | M_WAITOK);
unsigned char *decryptedKey = malloc(0x20, mt, M_ZERO | M_WAITOK);
bzero(encNVSKeyBuffer, 0x70);
bzero(decryptedKey, 0x20);
// Read encrypted key from NVS
icc_nvs_read(0, 4, 0x200, 0x60, encNVSKeyBuffer);
// Let SAMU decrypt the key for us
sceSblGetEAPInternalPartitionKey(encNVSKeyBuffer, decryptedKey);
printf("\nsEAP partition key: ");
for (int i = 0; i < 0x20; i++)
{
if (decryptedKey[i] < 0x10)
printf("0x0%x ", decryptedKey[i]);
else
printf("0x%x ", decryptedKey[i]);
}
printf("\n");
return;
}
Mounting PS4 HDD On Windows, Only Specific Partitions
- requirements.7z (12.03 MB)
- .wslconfig (for this you also need wsl2 installed, wsl1 should work as well)
- bzImage (this is ufs readonly! for ufs rw you need to compile your own bzImage)
cmtab
eap key partitions (i've chosen eap_vsh, update, user)
folders (according to cmtab)
and of course, your keys
in the case of user partition the number of the partition will be 27 so you do this
subtract 27 with 1
this will give 26
then you left shift 32
this will give 111669149696
Modify .wslconfig and cmtab accordingly! (path to bzImage, directory where to mount eap partitions, keys.bin location, ivoffset, etc)
Cheers to @mota for sharing the news in the PSXHAX Shoutbox!