Skip to content

PFU-PupFileUnpacker is a program that can unpack and analyze .PUP's “Playstation Update Package” files.

License

Notifications You must be signed in to change notification settings

seregonwar/PFU-PupFileUnpacker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1070fbb · Feb 21, 2025
Sep 6, 2024
Apr 8, 2023
Sep 11, 2024
Feb 21, 2025
Sep 6, 2024
Sep 11, 2024
Sep 6, 2024
Sep 21, 2024
Sep 11, 2024
Sep 21, 2024
Dec 14, 2024
Sep 21, 2024

Repository files navigation

PFU - PupFileUnpacker

Python 3.12 Version GitHub stars License Github All Releases

PFU

PFU is a Python tool for extracting and analyzing PS4 firmware update files (PUPs). It provides an easy way to unpack and inspect the contents of PUP packages.

Donation

ko-fi

Features

  • Extracts all files and metadata from PUP archives
  • Prints extensive details about the package contents, including:
  • Firmware version
  • Number of files contained
  • Installation instructions
  • File paths
  • File sizes
  • SHA-256 hashes
  • Intuitive GUI to select PUP files to unpack
  • Saves extracted files to output directory
  • Actively maintained and open source

Usage

Dependencies

PFU requires Python 3 and the following modules:

  • tkinter
  • struct
  • lzma
  • pycryptodome

Install dependencies with:

pip install tkinter struct lzma pycryptodome

Basic Usage

  1. Clone the GitHub repository:
git clone https://github.com/seregonwar/Pup-file-extractor.git
  1. Install dependencies:
pip install -r requirements.txt
  1. Run the script with:
python pup_unpacker.py
  1. Use the dialog to select a PUP file.
  2. The content will be extracted to your working directory.

Advanced Usage

The pup_unpacker.py script has extensive documentation on all functions and classes. Developers can easily integrate the PUP extraction functionality into their applications.

See the wiki for more usage details.

Project Structure

  • pup_unpacker.py: Main GUI script to select and extract PUP files.
  • pup_decrypt_tool.py: Tool to decrypt PUP files.
  • ps4_dec_pup_info.py: Module to extract information from decrypted PUP files.
  • pup_module.py: Module to manage the PUP file extraction logic.
  • Pupfile.py: Module to read and interpret PUP files.

Credits

The PUP extraction logic was adapted from ps4_dec_pup_info by SocraticBliss.

License

This project is licensed under the GNU License - see the LICENSE file for details.

Disclaimer

This tool is only for educational and investigative purposes. I am not responsible for any misuse or damage caused by this tool.

State of development

The development of this software is currently at a standstill. The code is complete and partially fulfills its intended functionality, but I am seeking a way to decrypt all update files encrypted with AES-256. The PFU feature is finished, but it cannot fully and properly extract the files. If I had access to Sony’s encryption keys and integrated them into the code, the decryption process would be much simpler. I will continue to release patches to address any bugs.