Skip to content

Latest commit

 

History

History
94 lines (70 loc) · 3.27 KB

README.md

File metadata and controls

94 lines (70 loc) · 3.27 KB

PFU - PupFileUnpacker

Python 3.12 Version GitHub stars License

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 MIT 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.