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

Releases: CreepNT/VitaLoader

0.3

10 Aug 13:57
Compare
Choose a tag to compare

Additions and changes:

  • Markup TLS, exidx and extab regions
    • Parsing of the exidx and extab regions may be implemented in the future
  • Markup library NID and package version for 0x1C-sized LibEnt
  • Markup library NID and package version for 0x2C-sized LibStub (when applicable)
  • Add support for 0x28-sized SceProcessParam
    • Allows loading old userland binaries
  • Add missing NONAME exports and use all official names
    • All known NONAME exports are now implemented

QoL:

  • Change the module namespace's name from MODULENAME_module to ##MODULENAME
  • Add extension version in published releases' description
    • A custom unpublished batch script is used to generate the extensions.properties before building the extension

Bugfixes:

  • Fix spurious null\n\n being added to some variable plate comments
  • Fix library NID missing from some variable plate comments
  • Fix primary label sometimes being a default name, despite a known name being available

This release should allow loading any module from firmwares 0.902, 0.931, 0.940-0.945, 0.990-0.996 and 1.00-3.74.
Please report any incompatibility in the Issues.

0.2.7

07 Jul 17:43
Compare
Choose a tag to compare
  • Change static probes structure to official name
  • Parse library NID properly for 0x1C-sized SceModuleInfo
    • 0.931 modules now have their library NIDs parsed properly

0.2.6

02 Jul 21:39
Compare
Choose a tag to compare
  • Fix the hotfix causing SceModuleInfo name to be parsed as garbage
    • Thanks to the f#ck@ng idiot who made the API for BinaryReader so stupid
  • Parse static probes more using a more accurate structure
    • To ensure corectness in most cases, structure may be undersized in old firmware
  • Change wording of static probes

0.2.5

29 Jun 13:46
Compare
Choose a tag to compare
  • Add library matching by name
    • Fixes 0.931 or older modules having no names resolved at all (Library NIDs were introduced in 0.940)
  • Library name -> module name mapping is now done using data from the NID database instead of a hardcoded list

0.2.4 Hotfix

23 Jun 21:49
Compare
Choose a tag to compare

Hotfix release: fix the bug caused by added SceModuleInfo checks.
See Release 0.2.4 changelog for info.

(The root cause of the bug is that new String(byte_array) will put the NUL characters inside the string and Ghidra rejects that; byte_array.toString() strips them properly. I didn't test an import after adding the code so it's my fault. Sorry for the inconvenience.)

0.2.4 - BUGGY, DO NOT USE

23 Jun 09:02
Compare
Choose a tag to compare
  • Add support for core dump files (ET_CORE, for use with e.g. faps-coredump)
  • Fix (most) crash(es) when ELF file uses p_paddr for a purpose other than encoding offset to SceModuleInfo
    • It is still possible for an ELF to crash if p_paddr is smaller than p_filesz, which should almost never happen in practice
  • Add more sanity checks on SceModuleInfo to prevent trying to parse bad/malformed ELFs
  • Fix SceModuleInfo structure being placed in the wrong namespace

From now on, builds for the latest Ghidra will be made available in addition to 10.1 and 10.1.2 builds.

THIS BUILD IS BROKEN - DO NOT USE.

0.2.3

29 May 20:36
Compare
Choose a tag to compare
  • Add support for regular ELF files (ET_EXEC and ET_REL)
    • Only PS Vita ELFs are supported! Loading non-Vita ELFs will not work - use the regular ELF loader instead.
  • SceModuleInfo is now located the proper way - this should allow loading all modules that previously crashed or error'ed out
  • Fix SceLibEntry structure type being created with the exported library's name instead
  • Add support for 0x2C-sized SceProcessParam (used in 0.930 SDK)
  • Fix symbol relocation hack that broke symbols on some apps (e.g. comicreader.self)
  • Add some missing module attributes
  • NONAME exports now go in "MODULENAME_module" namespace
  • Disable markup of "entry" by ELF loader - no more duplicates
  • Change name of SceLibEntry library name string to proper one
  • Other miscellaneous name changes, typo fixes, etc

0.2.2

22 May 14:39
Compare
Choose a tag to compare

Fix crash when loading ELFs importing from library with an unknown file/module name

0.2.1

20 May 10:08
Compare
Choose a tag to compare

Fix loading of unstripped ELFs - symbols now get marked up properly!
Fix some bugs leading to weird crashes when importing unstripped ELFs
Fix invalid format string in GenericModuleImports resulting in variables not being named properly
Change some names to use the SDK module names
Put some variables (ProcessParam, ModuleInfo) in the proper namespace

0.2

19 May 18:59
Compare
Choose a tag to compare
0.2
  • Add support for ET_SCE_PSP2RELEXEC (0xFFA5) files (0.931)
  • Put data structures in module/library name namespaces to tidy up the Global namespace
  • Markup exports with both database and default name if both are present to allow easier finding by search
  • Markup syscall exports with a special comment
  • Place imported functions in the proper namespace!
  • Fix loading of unstripped SDK ELFs (i.e. files with section headers)
    • Symbols don't get parsed properly for some reason
  • Refactor structures to decouple from ProcessingContext even more
  • Change SceModuleExports/SceModuleImports names to SceLibEntry/SceLibStubTable