Skip to content
This repository has been archived by the owner on Jul 10, 2023. It is now read-only.

CreepNT/VitaLoader

Repository files navigation

VitaLoader

PS Vita ELF loader for Ghidra

VitaLoader has been deprecated as it does not work on Ghidra version 10.2 or higher due to changes inside the Ghidra codebase. Please consider using VitaLoader Redux instead, as this repository is no longer maintained.

Features

VitaLoader can be used in place of the Ghidra ELF loader to load SCE-specific ELFs for PSVita. Attempting to load non-Vita ELFs will not work properly and is not supported - use the regular ELF loader instead.

  • Supports all SCE ELF types (ET_SCE_EXEC, ET_SCE_RELEXEC, ET_SCE_PSP2RELEXEC) and generic ELF types (ET_REL/ET_EXEC/ET_CORE) that follow the SCE format
  • True entrypoint is located using the SceModuleInfo instead of the ELF header's e_entry
  • All imports and exports are marked up exports and imports of the module
    • All exports and imports can be automatically named using a user-provided NID database
    • Imports are sorted based on the module they are imported from. Exports are not sorted as it doesn't seem possible yet.
  • SceProcessParam is parsed, marking up all functions involved in the Malloc Replacement functionality
  • DTrace probes structures are parsed, marking up all DTrace probes (for kernel modules)
  • Syscall exports are marked up when appropriate (for kernel modules)
  • Basic SCE datatypes are added to the project automatically

Installation

Download the latest release for the Ghidra version you use. Open Ghidra, select File > Install Extensions..., click on the green + and select the .zip you just downloaded. Ghidra should ask you to restart in order for changes to take effect, do so.

Building

You will need to install Gradle in order to be able to build the extension.

Run gradle / gradle.bat in the repository directory. Make sure to pass -PGHIDRA_INSTALL_DIR=<your Ghidra install> if the environement variable GHIDRA_INSTALL_DIR isn't set.

It seems building the extension for Ghidra 9.xx releases is no longer possible. Assistance in getting the project to build will only be provided for the latest Ghidra version.

Known bugs

  • Import thunks may not be marked up (cause unknown)
  • VitaSDK moduled with no export cannot be imported ("malformed" SceModuleInfo improperly parsed)
  • VitaLoader will not work if GhidraOrbis is installed

Credits

About

DEPRECATED - use Redux instead

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
YamlBeans_LICENSE.txt

Stars

Watchers

Forks

Languages