PRX: Difference between revisions
Jump to navigation
Jump to search
CelesteBlue (talk | contribs) (→PRX2) |
CelesteBlue (talk | contribs) (→PT_SCE_PPURELA Segment: Remve outdated info) |
||
Line 20: | Line 20: | ||
*The first bit (0x80000000) is also set on earlier PRXs but it is currently unknown what it is used for. | *The first bit (0x80000000) is also set on earlier PRXs but it is currently unknown what it is used for. | ||
{{File Formats}} | {{File Formats}} | ||
<noinclude>[[Category:Main]]</noinclude> | <noinclude>[[Category:Main]]</noinclude> |
Revision as of 09:39, 28 December 2019
Overview
Playstation Relocatable Executable (PRX)
PRX2
PRX2 is only present on PSVita.
A PRX module is PRX2 format only if ehdr.e_type is ET_SCE_EXEC or ET_SCE_RELEXEC.
A Program Segment is PRX2 format only if p_type is PT_SCE_RELA or PT_SCE_COMMENT.
Relocations
PS3
Relocations can be found in either PT_SCE_PPURELA segments or SHT_SCE_PPURELA / SHT_RELA sections. RELA relocations are standard relocations while PPURELA relocations have 2 segment (program header) indexes stored in r_sym of r_info.
- The first index can be extracted with 0x7FFFFF00 as a mask and is used as a base address for r_addend. This sum will be the value applied to the patch.
- The second index can be extracted with 0x000000FF as a mask and is used as a base address for the target segment to patch and is added to r_offset.
- The first bit (0x80000000) is also set on earlier PRXs but it is currently unknown what it is used for.
|