When reverse engineering Playstation Vita games you will come across a number of different file formats, this post will explain all the file formats and how to use them.
Package files are ways to distribute the full games to be installed on Playstation Vita consoles, the contains all the assets and executables required to run the game.
The games available on the Vita shop comes in an encrypted .PKG format along with a user-specific license. In order to disassemble/decompile or modify games they need to be decrypted 1.
For details of the file format used for these packages see this page on the excellent PSDevWiki: PKG files - PS3 Developer wiki
If you would like to extract a Vita PKG file you can use the tool called PkgDecrypt: GitHub - st4rk/PkgDecrypt: Decrypts PS Vita PKG files
You can run it like so, to run through any PKG files in the same directory and output to a folder called output:
./pkg_dec *.pkg ./output
Note that this will extract the files but not decrypt them!
After extracting with PkgDecrypt you will notice that none of the files seem to work, PNG files don’t display etc. This is because they are still encrypted even although they have been extracted. In order to decrypt these files you need to get PsVpFsTools and run a command like so:
./psvpfsparser -i output -o output_dec -f cma.henkaku.xyz -z YOUR_LICENSE_KEY
You can generate YOUR_LICENSE_KEY if you don’t already have it by getting work.bin and running make_key which is a tool that comes withPkgDecrypt :
./make_key work.bin
Vita Package Files (.VPK) are the format for distributing homebrew applications and some extracted pirate un-encrypted game dumps created by a (now-deprecated) Homebrew tool called Vitamin (Created by TheFloW).
Mai packages are created by a Homebrew tool called MaiDumpTool which is a tool used to backup and decrypt Playstation Vita Games into a Mai package.
The Vita Pirate community has moved away from VPK and Mai to use the Official PKG files with a plugin called NONPDRM.
Executable files are where all the game code is stored in binary and can be disassembled or decompiled to show the inner workings of a game or application.
SELF files are the main executables that run on the Playstation Vita and PS3, it is a Sony specific extension of the well known ELF (Executable and Linkable Format) file format that is used on many other systems (Linux, PS2, Gamecube..) 2.
You need to build vita-unmake-fself from
./vita-unmake-fself eboot.bin
SPRX files are basically dynamic libraries similar to DLL files on Windows, Dylib files on OSX and IRX files on Playstation 2.
In order to extract a psarc file you can use the following tool: paul-hedrick/psarc
/psarc -x data.arc
This section contains a definition of terminology you might see related to the file formats listed in this page.
Relocations are the metadata used to boot the dumped game and are generated by MaiDumpTool but not Vitamin when dumping PS Vita games. Single SELF format executables do not have the relocations required to boot most games but the EBOOT.BIN files contains the relocation data.