12514-GBA_|_Otros_|_\[DISASSEMBLER]_IDA_PRO_tutorial
#4
Almamu 12843
Como apunte al tema, cuando saltes al punto de entrada del rom en la IDA View, si pulsas C empieza el autoanalisis y te dice todos (o la mayoría) de puntos de entrada de subrutinas en ASM, además de que te busca todas las cadenas de texto terminadas en NULL('\0' == 0x0) y un par de cosas más bastante útiles para trabajar con IDA. Vengo de usarlo con juegos de PC y el autoanalisis es de muchísima ayuda para esto ;) (aunque parece ser que la lista de cadenas no muestra ninguna del juego)

Estas direcciones os serán de utilidad, están en base al punto de entrada del rom(aquí 0x8000000)
Address Bytes Expl.
000h 4 ROM Entry Point (32bit ARM branch opcode, eg. "B rom_start")
004h 156 Nintendo Logo (compressed bitmap, required!)
0A0h 12 Game Title (uppercase ascii, max 12 characters)
0ACh 4 Game Code (uppercase ascii, 4 characters)
0B0h 2 Maker Code (uppercase ascii, 2 characters)
0B2h 1 Fixed value (must be 96h, required!)
0B3h 1 Main unit code (00h for current GBA models)
0B4h 1 Device type (usually 00h)
0B5h 7 Reserved Area (should be zero filled)
0BCh 1 Software version (usually 00h)
0BDh 1 Complement check (header checksum, required!)
0BEh 2 Reserved Area (should be zero filled)
--- Additional Multiboot Header Entries ---
0C0h 4 RAM Entry Point (32bit ARM branch opcode, eg. "B ram_start")
0C4h 1 Boot mode (init as 00h - BIOS overwrites this value!)
0C5h 1 Slave ID Number (init as 00h - BIOS overwrites this value!)
0C6h 26 Not used (seems to be unused)
0E0h 4 JOYBUS Entry Pt. (32bit ARM branch opcode, eg. "B joy_start")