Nieuwe Exploit gevonden voor de Nintendo DSi

RDJ134 3 juli 2017 om 15:04 uur

Nu retro gamen weer helemaal hip is, begint de hacking scene er om heen ook opeens weer op te bloeien. Want wie bekend is met de Nintendo handhelds weet ook dat er een hoop flashcards voor beschikbaar zijn en dat deze niet altijd willen werken of helemaal niet. Nu schijnt het op de Nintendo DSi een bitch te zijn, maar een aantal hele slimme hackers hebben een exploit gevonden en dit maakt het nu mogelijk om Custum Firmware te flashen in de handheld. Maar daar meer over in het onderstaande bericht en proof of concept video.


Apache Thunder first found this flaw back on May 29th. Almost a year after NoCash initially discovered a oversight by Nintendo involving the DS Cart White list which this exploit takes advantage of (Nintendo forgot to reimplement the RSA checks on it lolz). I was fudging with various things in the white list to try and get a crash. I got system menu to crash by using large values in section 3! So I contacted NoCash and a few other devs about this to investigate it and to see if it's exploitable. Well long story short it was!

Summery of the above video:

The exploit requires 1.4.0 firmware! Older or newer fw revisions do not work!
The exploit requires a flashcart that you are able to modify the internal rom it presents to the system.
Details on which cards will be compatible will be revealed at a later time.
The exploit involves a buffer overflow flaw involving section 3 of the white list.
This overflow occurs on arm7 thus allowing overwriting memory exclusive to arm7.
As a result a large enough overflow will hit the exception vectors. This is how we gain code execution.
Arm9 was relatively easy to take over. Though data caching presented a minor roadblock while testing on hardware. :p
I currently use a modified build of nds-bootloader from WinterMute's github. You know, that portion of hbmenu responsible for booting SRLs. :p
Because we already gained arm7 we only had to put arm9 in the correct wait state so that nds-bootloader can do it's thing. :D
The exploit in theory can work from the menu once it's running. But we currently make use of the auto boot feature to ensure a stable consistent environment. Tests with a second console suggest that is the case. Note that the exception vector for arm7 seems to either be somewhere else once the menu GUI is running or the overflow hits something else causing arm7 to crash early. Currently we plan to only target exploiting the system with an autoboot rom as it's more predictable.
The exact mechanics of the arm9 take over and how nds-bootloader is loaded may change. Currently the entire payload fits on the cart. But we may allow reading a payload off SD instead.

Credits to NoCash, Gericom, and Normmatt for help testing/figuring this out. Big credit to StuckPixel who put in most of the coding needed to make this happen. My contribution was finding the flaw and help with testing on hardware.

I will release further details as we finalize this exploit and prepare stuff that will make installing it easier.

Note you will either need a nand mod or a DSiWare based exploit to downgrade your console/install the modified white list needed for this to work. Hopefully we'll have a better solution then simply using fwtool to do this so that may be the factor that determines release date so please be patient!



Reageer