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%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-18 11:52:01 -04:00
build initial import 2026-09-17 23:33:15 -04:00
source initial import 2026-09-17 23:33:15 -04:00
Makefile initial import 2026-09-17 23:33:15 -04:00
npdrm-key-dumper.bin initial import 2026-09-17 23:33:15 -04:00
npdrm-key-dumper.map initial import 2026-09-17 23:33:15 -04:00
README.md readme: credit @zecoxao for rif_signer3.py 2026-09-18 11:52:01 -04:00
rif_signer3.py initial import 2026-09-17 23:33:15 -04:00

NPDRM Key Dumper Payload

This PS4 payload opens /dev/npdrm and retrieves the NPDRM key via ioctl.

Description

The payload performs the following operations:

  1. Initializes kernel and libc functionality
  2. Jailbreaks the system to gain elevated privileges
  3. Opens the /dev/npdrm device
  4. Calls ioctl with command 0xC0D04401 to retrieve the NPDRM key
  5. Displays the 16-byte key in a notification message
  6. Closes the device and exits

Building

export PS4SDK=/path/to/ps4-payload-sdk
make

The compiled payload will be npdrm-key-dumper.bin.

Usage

  1. Send the payload to your jailbroken PS4 using a payload sender
  2. The payload will display a notification with the NPDRM key in hexadecimal format

Files

  • source/main.c - Main payload source code
  • Makefile - Build configuration
  • npdrm-key-dumper.bin - Compiled payload (after build)
  • rif_signer3.py - RIF resigner utility by @zecoxao

Credits

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/npdrm device interface
  • Standard BSD ioctl interface