Archive of https://github.com/zecoxao/prxldr — copy of Sorvigolova's prxldr for ida pro 9.0 rc1 https://github.com/zecoxao/prxldr
  • C++ 85.7%
  • C 13.6%
  • Makefile 0.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2024-12-01 18:34:08 +00:00
.gitignore initial commit 2024-12-01 18:27:35 +00:00
Makefile initial commit 2024-12-01 18:27:35 +00:00
prxldr.cpp initial commit 2024-12-01 18:27:35 +00:00
prxldr.h initial commit 2024-12-01 18:27:35 +00:00
prxldr.sln initial commit 2024-12-01 18:27:35 +00:00
prxldr.vcxproj initial commit 2024-12-01 18:27:35 +00:00
prxldr.vcxproj.user initial commit 2024-12-01 18:27:35 +00:00
README.md Update README.md 2024-12-01 18:34:08 +00:00
scelibnids.cpp initial commit 2024-12-01 18:27:35 +00:00
scelibnids.h initial commit 2024-12-01 18:27:35 +00:00

PSP prxldr plugin for IDA

This is an updated version of prxldr for IDA v9.0 rc1.

Install

To install copy the files "prxldr.dll" and "prxldr64.dll" into the "IDA/loaders" directory. If you also copy the file "psplibdoc.xml" into the "IDA/loaders" directory this plugin will use it to correctly name imports and exports.

Credits

  • xyzz wrote prxldr
  • balika011 updated prxldr for a newer version of IDA
  • xorloser updated prxldr for IDA v7.5 sp3, fixed some 32bit pointer stuff and added decompiler setup (requires MIPS hexrays decompiler to decompile).
  • thecobra created the bundled psplibdoc.xml in the releases zip (afaik)
  • Sorvigolova ported to IDA 9.0 rc1

Limitations

Does not support encrypted PRX files.

Does not properly support the PSP ABI when decompiling (but works decently). It seems the PSP ABI is actually some custom sony "mips eabi" thing, but IDA only lets us choose between o32 and n32.

  • o32 has 32bit registers and supports up to 4 registers as params for functions.
  • n32 has 64bit registers and supports up to 8 registers as params for functions.

I chose n32 since it will show params for functions correctly. It will however show 64bit values for immediate values which will look weird for immediate values that have the upper bit set.

This means that you will see: some_var = 0xFFFFFFFF80000000 instead of some_var = 0x80000000

History

20210304

First release by xorloser

20241201

Second release by Sorvigolova