Home Homebrew Rilasciato PSP prxldr plugin per IDA v20210304_1442

Rilasciato PSP prxldr plugin per IDA v20210304_1442

257
0

PSP prxldr plugin è una versione aggiornata di prxldr che corregge alcuni problemi con i puntatori a 32 bit e aggiunge la configurazione del decompilatore (richiede il decompilatore hexrays MIPS per decompilare).

PRX è l’abbreviazione di PSP RelocatebleeXecutable. Sony ha esteso il formato file ELF standard, diverso dallo standard perché utilizza un tipo ELF speciale, ridefinisce il significato degli indirizzi fisici in ProgramHeader, aggiunge sezioni speciali e adotta un formato di riposizionamento personalizzato ELF.

Questo è anche il motivo fondamentale per cui il caricatore di file ELF di IDA non può supportare bene il formato PRX. Questo sarà descritto in dettaglio di seguito.

Il tipo ELF speciale PRX utilizza 0xFFA0 come tipo di file invece di 0x0002 nell’ELF MIPS standard. Questa è la caratteristica principale che contraddistingue PRX ed ELF.

Allo stesso tempo, puoi vedere che la CPU è espansa a 0xA2 nei flag dell’header ELF, che indica il processore allegrex utilizzato sulla PSP.

Installazione

  • Per installare copiare i file prxldr.dll e prxldr64.dll nella directory IDA/loaders.
  • Se si copia anche il file psplibdoc.xml nella directory IDA/loaders, questo plugin lo utilizzerà per denominare correttamente le importazioni e le esportazioni.

Crediti

  • xyzz per aver scritto prxldr.
  • balika011 per aver aggiornato prxldr per una versione più recente di IDA.
  • xorloser per aver aggiornato prxldr per IDA v7.5 sp3, corretti alcuni problemi con i puntatori a 32 bit e aggiunta la configurazione del decompilatore (richiede il decompilatore hexrays MIPS per decompilare).
  • thecobra per aver creato il file psplibdoc.xml in bundle nello zip delle versioni (afaik).

Limitazioni

Non supporta i file PRX crittografati.

Non supporta correttamente l’ABI della PSP durante la decompilazione (ma funziona in modo decente). Sembra che l’ABI della PSP sia in realtà qualcosa di sony “mips eabi” personalizzato, ma IDA ci permette solo di scegliere tra o32 e n32.

  • o32 ha registri a 32 bit e supporta fino a 4 registri come parametri per le funzioni.
  • n32 ha registri a 64 bit e supporta fino a 8 registri come parametri per le funzioni.

Ho scelto n32 poiché mostrerà correttamente i parametri per le funzioni. Tuttavia mostrerà i valori a 64 bit per i valori immediati che appariranno strani per i valori immediati che hanno il bit superiore impostato.

Ciò significa che vedrai: some_var = 0xFFFFFFFF80000000 invece di some_var = 0x80000000

Changelog

  • Tenta di correggere potenziali problemi di stringa che causano la mancata etichettatura corretta delle funzioni NID.

Download: PSP prxldr plugin per IDA v20210304_1442

Download: Source code PSP prxldr plugin per IDA v20210304_1442

Fonte: github.com

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.