Archive of https://git.etawen.dev/earthonion/npdrm-key-dumper-ps4 — PS4 payload that dumps the NPDRM key via /dev/npdrm ioctl (0xC0D04401)
https://git.etawen.dev/earthonion/npdrm-key-dumper-ps4
- Python 59.7%
- C 21.3%
- Makefile 19%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| build | ||
| source | ||
| Makefile | ||
| npdrm-key-dumper.bin | ||
| npdrm-key-dumper.map | ||
| README.md | ||
| rif_signer3.py | ||
NPDRM Key Dumper Payload
This PS4 payload opens /dev/npdrm and retrieves the NPDRM key via ioctl.
Description
The payload performs the following operations:
- Initializes kernel and libc functionality
- Jailbreaks the system to gain elevated privileges
- Opens the
/dev/npdrmdevice - Calls
ioctlwith command0xC0D04401to retrieve the NPDRM key - Displays the 16-byte key in a notification message
- Closes the device and exits
Building
export PS4SDK=/path/to/ps4-payload-sdk
make
The compiled payload will be npdrm-key-dumper.bin.
Usage
- Send the payload to your jailbroken PS4 using a payload sender
- The payload will display a notification with the NPDRM key in hexadecimal format
Files
source/main.c- Main payload source codeMakefile- Build configurationnpdrm-key-dumper.bin- Compiled payload (after build)rif_signer3.py- RIF resigner utility by @zecoxao
Credits
rif_signer3.py— zecoxao
Structure
The key is retrieved into a npdrm_key_t structure:
typedef struct {
uint8_t key[0x10]; // 16 bytes
} npdrm_key_t;
References
- PS4 Payload SDK: libPS4 library
/dev/npdrmdevice interface- Standard BSD ioctl interface