Nintendo DS
Nintendo DS games often package graphics, sound, and two ARM executables (ARM7 and ARM9). By unpacking them, you can disassemble the logic or modify in-game text to retrieve hidden CTF flags.
- Unpack ROM:
nds_unpacker.py game.nds - Load
arm9.binin Ghidra -> Processor: ARM v5 -> Base: 0x02000000 - Test execution in DeSmuME
| Tool | Purpose |
|---|---|
| DeSmuME | NDS emulator with debugging |
| NDSFactory | Unpack and repack NDS ROMs |
| Ghidra | Disassemble ARM binaries |
- Focus on the ARM9 code, it usually holds logic and flag comparisons.
- Extract embedded assets like
.binor.dat, they may include hint text or images. - Run inside DeSmuME debugger to inspect VRAM or register states.