chaoticgd / ghidra-emotionengine-reloaded

An extension for Ghidra that adds support for the PlayStation 2.
Apache License 2.0
118 stars 11 forks source link

Is there support for IOP modules? #29

Closed Mc-muffin closed 10 months ago

Mc-muffin commented 11 months ago

Wondering if the extension supports them, if not, perhaps you know a way to load them into Ghidra?

chaoticgd commented 11 months ago

This extension is mainly intended for use with the MIPS R5900 core in the EE. The IOP is a MIPS R3000 core, so you could try using the MIPS:LE:32:default processor included with Ghidra. If you are in the fortunate position of having an IRX module with mdebug symbols, the symbol table parser included with ghidra-emotionengine-reloaded should still work with it even when not using the R5900 processor.

IOP modules are ELF files so they should load normally. I know Ziemas has done a bunch of stuff with IOP modules in Ghidra (they're the reason OpenGOAL has audio), although I haven't used his extension myself and it's probably outdated at this point: https://github.com/Ziemas/ghidra_irx It looks like its main feature is to name functions referenced by the import/export tables (which are used to dynamically link the IOP modules together using stubs).

israpps commented 11 months ago

and it's probably outdated at this point:

big issue is that due to the many versions of IRX modules around its kinda hard to get a complete and decent list...

fortunately it has lots of imports from system modules. wich are great to quickly identify thread creation, RPCs and so on...