A PS3 Package Viewer and Extraction
English | 日本語
A Windows tool for opening PS3 PKG files, browsing their contents, and extracting them.
Note
This tool only decrypts the outer encryption (AES-128-CTR) applied to the whole PKG.
Extracted EBOOT.BIN and *.self files remain NPDRM SELF (encrypted executables).
- Open a PKG file and browse its folder tree and file list
- Shows Name / Size / Type / Offset / Flag
- Icons based on the file type
- Double-click (or press Enter on) a folder to open it
- Extract the whole PKG (
Tools → Extraction) - Extract a single file or folder from the file list's context menu
- Extraction progress is shown in the status bar
| Type | revision | Status |
|---|---|---|
| PS3 Retail (Finalized) | 0x8000 |
Supported |
| PS3 Debug (Non-finalized) | 0x0000 |
Implemented, not yet verified |
| PSP / PS Vita | — | Not supported |
- Windows 10 / 11
- .NET 10 (Windows Desktop Runtime)
- Open
PackageViewer.slnxin Visual Studio - Restore NuGet packages (restored automatically on build)
- Build and run
.
├── PackageViewer.slnx … Solution file
├── src/
│ └── PackageViewer/
│ ├── PackageViewer.csproj
│ ├── Extensions/
│ │ └── StreamExtensions.cs … Big-endian read/write helpers (Stream extension methods)
│ ├── IO/
│ │ ├── Decoder.cs … PKG decryption (header and item table, AES-CTR / Debug keystream, signature)
│ │ ├── FileEntry.cs … A single entry in the item table (ItemRecord + decrypted file name)
│ │ ├── FileType.cs … File type (EBOOT / SELF / Directory / Image, etc.)
│ │ ├── ItemRecord.cs … PKG_ITEM_RECORD (0x20 bytes)
│ │ ├── PackageHeader.cs … Read/write the PKG header (0xC0 bytes)
│ │ └── Unpacker.cs … Extraction to disk
│ ├── Package.cs … Decrypted package information
│ ├── RuntimeHelpers.cs … Application-wide helpers (app name, error dialog)
│ ├── frmMain.cs … Main window
│ └── frmAbout.cs … About window
├── resources/
│ ├── appicon.ico
│ └── icon/ … Icons for the file list
└── docs/
└── main.png … Screenshot
| Range | Contents |
|---|---|
0x000–0x0BF |
Header (magic \x7FPKG, revision, type, data location, Content ID, IV, etc.) |
0x0C0– |
Metadata (DRM type, content type, etc.) |
data_offset– |
Encrypted data area (item table → file names → file data) |
Last 0x20 bytes |
SHA-1 of the whole file |
- All values are big-endian.
- Retail PKGs are encrypted with AES-CTR, using
AES-128-ECB(NPDRM PKG PS3 AES key, pkg_data_riv + block index)as the keystream. - See PS3 Developer Wiki – PKG files for details.
- Create new PKGs (Debug format for CFW)
- Replace files in an opened PKG
- PS3 Developer Wiki
- PKG files — Specification of the PKG header, item records, metadata and encryption
- ByteSize (ByteSizeLib) by Omar Khudeira — MIT License
- Used for displaying file sizes
This software is provided "as is", without warranty of any kind. The author is not liable for any damages arising from its use.
© 2026 coreizer
