Home Mac OS Plugin e loader della console PlayStation 3 e Xbox 360 per IDA...

Plugin e loader della console PlayStation 3 e Xbox 360 per IDA 7.5 sp3

195
0

Il developer xorloser ha pubblicato dei nuovi plugin e caricatori della console PlayStation 3 e Xbox 360 per la versione 7.5 sp3 del debugger IDA (con l’aggiunta del plugin del processore spu).

Si noti che si consiglia di aprire direttamente i file SELF o XEX originali senza prima convertirli in ELF o EXE. Questo perché un file SELF/XEX contiene dati extra non presenti in ELF/EXE.

Installazione

  • Per l’installazione, copiare la struttura della directory all’interno della cartella IDA allegata nella directory di installazione di IDA.

Note sui plugin

PlayStation 3 SELF/ELF loader (ps3.dll/ps364.dll)

Caricare i file PS3 SELF direttamente in IDA senza richiedere alcuna pre-elaborazione come estrazione o decrittografia. Tentare di utilizzare quante più informazioni possibili durante l’impostazione del disasmo, automatizzando varie cose come l’impostazione della tabella, le chiamate di sistema, le chiamate ai moduli ecc..

Questo caricherà anche i file ELF, tuttavia si consiglia di caricare il file SELF originale per ottenere i migliori risultati poiché i file SELF contengono dati extra che non sono presenti nel file ELF.

Utilizza il file ps3.xml modificabile dall’utente per informazioni sui NID utilizzati per denominare funzioni e variabili importate ed esportate.

SPU processor module (spu.dll/spu64.dll)

Questo pacchetto ora contiene il modulo del processore SPU (spu.dll e spu64.dll).

Se lo installi insieme al modulo SPU ufficiale, IDA sceglierà di utilizzare un plugin o l’altro in un modo che sembra casuale. Quindi si consiglia di avere un solo modulo SPU pronto per l’uso alla volta.

Per evitare di caricare casualmente un plugin, aggiungere il suffisso .bak al nome del file di qualsiasi modulo che non si intende utilizzare. Per questo motivo i moduli del processore SPU forniti in bundle presentano tutte il suffisso .bak già applicato.

Quindi, se desideri utilizzarli al posto del modulo ufficiale, devi rimuovere questo suffisso e rinominare il file spu.py in spu.py.bak.

Non mi sono preoccupato di rilasciarlo prima poiché esiste già un modulo SPU perfettamente funzionante in bundle con IDA. Ho scritto il mio modulo prima che questo supporto “ufficiale SPU” fosse aggiunto, e principalmente l’ho tenuto in giro poiché avevo IDB esistenti che si basavano su di esso.

PPC to C (PPC2C.dll/PPC2C64.dll)

Questo non è un decompilatore. Questo è un plugin che cerca di rendere più facili da capire alcune delle complicate istruzioni PPC. Esistono varie versioni di questo plugin su Internet. Quindi, se non lo hai già, usa questa versione come punto di partenza.

Questo aggiungerà commenti del codice C che rappresentano le istruzioni PPC, come ad esempio:

bc 14, 4*cr7+eq, loc_800037A8 # if(cr7 is equal) goto loc_800037A8
clrlwi %r0, %r0, 31           # %r0 = %r0 & 1
rldicr %r10, %r10, 24,39      # %r10 = ((%r10 << 24) | (%r10 >> 40)) & 0xFFFFFFFFFF000000
rldicl %r4, %r4, 0,48         # %r4 = %r4 & 0xFFFF

Un esempio di alcune righe che potresti voler aggiungere in plugins.cfg in IDA:

PPC_To_C:_Current_Line PPC2C F10 0 ; converte la riga corrente in C
PPC_To_C:_Entire_Function PPC2C Ctrl-F10 1 ; converte la funzione corrente in C

PPC Helper (PPCHelper.dll/PPCHelper64.dll)

Questo è un plugin molto semplice che tenta di rinominare gli argomenti della funzione e di impilare le variabili in modo da rendere il tuo lavoro di disasmo un po’ più semplice. Un esempio di alcune righe che potresti voler aggiungere al file plugins.cfg in IDA:

PPC_Helper    PPCHelper    F10    0

Per un esempio di ciò che fa, guarda l’esempio “SPU Helper” di seguito. Funziona in modo simile.

SPU Helper (SPUHelper.dll/SPUHelper64.dll)

Funziona solo con il mio modulo SPU personalizzato. Questo è un plugin molto semplice che tenta di rinominare gli argomenti della funzione e di impilare le variabili in modo da rendere il tuo lavoro di disasmo un po’ più semplice. Un esempio di alcune righe che potresti voler aggiungere al file plugins.cfg in IDA:

SPU_Helper    SPUHelper    F10    0

Un esempio di cosa fa:

Prima:

	# =============== S U B R O U T I N E =======================================
	func1_before:
	.equ var_50, -0x50
	.equ var_30, -0x30
	.equ var_20, -0x20
	.equ var_10, -0x10
	.equ arg_10,  0x10

	stqd    s0, var_10(sp)
	lr      s0, r3
	stqd    s1, var_20(sp)
	lr      s1, r5
	stqd    s2, var_30(sp)
	lr      s2, r4
	stqd    lr, arg_10(sp)
	stqd    sp, var_50(sp)

Dopo:

	# =============== S U B R O U T I N E =======================================
	func1_after:
	.equ save_sp, -0x50
	.equ save_s2, -0x30
	.equ save_s1, -0x20
	.equ save_s0, -0x10
	.equ save_lr,  0x10

	arg0 = s0
	arg2 = s1
	arg1 = s2
	ret = r8

	stqd    arg0, save_s0(sp)
	lr      arg0, r3
	stqd    arg2, save_s1(sp)
	lr      arg2, r5
	stqd    arg1, save_s2(sp)
	lr      arg1, r4
	stqd    lr, save_lr(sp)
	stqd    sp, save_sp(sp)

Xbox360 XEX loader (xex.dll/xex64.dll)

Carica i file XEX della Xbox 360 direttamente in IDA senza richiedere alcuna pre-elaborazione come estrazione o decrittografia. Tenta di utilizzare quante più informazioni possibili durante l’impostazione del disasmo, automatizzando varie cose come l’impostazione della tabella, le chiamate di sistema, le chiamate ai moduli ecc..

Utilizza il file modificabile dall’utente Xbox360.xml per informazioni sugli ID utilizzati per denominare funzioni e variabili importate ed esportate.

Changelog

  • Contiene alcune correzioni per PS3 dopo che varie persone hanno iniziato a usarle e mi hanno segnalato problemi.
  • Corretto il problema con la gestione dei simboli ELF a 32 bit (presente nei file SPU con simboli).
  • Corretto il problema con la gestione personalizzata dei file SPU ELF in cui mancano dati extra SELF.
  • Corretto il supporto per il modulo SPU ufficiale con il caricatore PS3 SELF/ELF.
  • Aggiunto modulo SPU.
  • Aggiunto caricamento automatico delle informazioni di debug DWARF (di solito presente solo nelle build di debug).
  • Aggiunto avviso e suggerimento di utilizzare il file SELF se si carica un file ELF preconvertito in modo errato.

Download: IDA console stuff 20210303

Download: Source code IDA console stuff 20210303

Fonte: github.com

Articolo precedenteRilasciato PSP prxldr plugin per IDA v20210304_1442
Articolo successivoWargame: Red Dragon in regalo su Epic Games Store
Sono Nato nel 1980 e da diversi anni coltivo la passione per tutto ciò che riguarda il mondo dei videogiochi, ho vissuto l'era degli home computer con il Commodore 64 e l'Amiga 500, da sempre appassionato di giochi di ruolo e di titoli di avventura.