HackMii

Notes from inside your Wii

HackMii header image 2

DSiWare Exploit Sudokuhax Release

January 27th, 2011 by yellows8 · 90 Comments

Update: 28/01/2011 Nintendo removed Sudoku from the EUR/AU and USA DSi Shop. At the time of the USA Sudoku removal, there was 234 injection requests from the client software, and 1684 client software release archive downloads. The download/request ratio is large because there was several downloads per minute, while each user took several minutes to buy Sudoku and inject Sudokuhax, thus there was one injection request every couple minutes. Current download and injection stats are available here.

Update: 02/02/2011 USA Sudoku was removed from NUS, EUR Sudoku is still available on NUS but both aren’t available from any of the DSi Shop regions. None of the Sudoku regions were updated on NUS yet. And at this time when trying access the Sudoku page from DSi Shop “Account activity”, it displays an error saying this software was removed due to certain circumstances.

Update: 03/24/2011 USA Sudoku was updated and is now available on DSi shop again. EUR/AU Sudoku was not yet updated. On roughly 03/30/11, EUR/AU Sudoku was updated and is now available on DSi Shop. This update fixes all the Sudoku string bugs, and the game will check for Sudokuhax and delete it when detected. Sudokuhax is dead for this updated Sudoku version.

As you may remember we started looking at the DSi about two years ago. Despite some early attempts using savegame hacks for hybrid card games we eventually resorted to more complex attacks that involved soldering many wires to tiny points on the PCB to be able to trace and modify the RAM. However, doing this is not feasible for the average homebrew user so we used the knowledge we gained through these complicated attacks to get more information about the whole system which allowed us to experiment with DSiWare games in the end. We also learned how to create savegames so we can now do what we did three years ago with the Wii: Savegame hacks!

In early December we managed to get DSi mode code execution by exploiting the DSiWare application ‘Sudoku’ by EA. Sudoku is only available for regions USA and EUR/AU. Exploiting DSiWare is interesting because in DSi mode the DSi SD card slot is accessible, the whole 16MB RAM is available, and the CPU is clocked 2x higher than DS-mode. The max size of the embedded code that can be loaded directly via this exploit is limited so a small payload was needed to chain load to another application. Initially a wifi loader was used, but this was switched to load from the DSi SD card slot. The SD card loader boots /boot.nds from the SD card directly from Sudokuhax.

DSiWare exploits can’t access gamecard slot1, it’s likely that only launcher/sysmenu can access slot1. The main advantage of DSiWare exploits over hybrid card EEPROM savedata exploits is SD card access, *and* the exploit supports SDHC. 🙂

Usage of the exploit is described below:

  1. Export Sudoku to SD card via the data management menu.
  2. Sudokuhax will then be injected into the Sudoku application via client software. The client software uploads DSi-specific data from the Sudoku application to a web server, then injects the retrieved data into the Sudoku application.
  3. Copy the output binary to SD card with the same filename as the original.
  4. Copy Sudokuhax from SD card to “internal memory” via the data management menu.
  5. Launch Sudoku, then press button A or touch screen at the Sudoku title screen.
  6. Now boot.nds on SD card will be run.

The data uploaded by the client software includes the anonymous DSi-unique console ID, and other data required for modifying the Sudoku binary on SD card. This data is used for logging unique web server requests.

The client software is available here. The tracker for the client software and Sudokuhax is available here. Client software source code licensed under GNU GPLv2 is available here.

Tags: dsi

90 responses so far ↓

  • 1 Zachary // Jan 30, 2011 at 8:06 am

    That’s pretty awesome, can’t wait until somebody makes it more accessible to noobs… like me.

  • 2 winmaster // Jan 30, 2011 at 9:36 am

    Thought: DSDownloadPlay must have slot1 access because Pokemon Black and White can use it to access your savedata on a Diamond/Pearl/Platinum card, so shouldn’t there theoretically be some way to launch a title without disabling slot1?

    BTW, everyone says that exploiting DSDownloadPlay is impossible, but I don’t think I’ve ever seen a reason why except for the fact that it would be DS mode, which is undesirable.

  • 3 yellows8 // Jan 30, 2011 at 11:16 am

    winmaster: Yes that does have slot1 access but it’s ds-mode so exploiting it is rather pointless. There’s no reason why dlplay second-stage wmb loaders couldn’t be exploited. I actually have an exploit for a WMB bin but releasing it doesn’t have much point for DSi-mode since WMB is DS-mode. I can’t legally release it if I wanted to: would need to redistribute the copyrighted JP DS Station WMB bin, and people would need to either setup a softAP or change their router SSID/WEP key.

    Zachary: What exactly do you mean? We’re working on more exploits, we can’t do much about Nintendo removing the targets so fast besides more hax.(Would be nice to exploit a popular DSiWare, presuming that Nintendo would care enough about profits to not remove it.)

    Nathan: Currently since we’re not aware of any vulns that could allow a DSi HBC, so just load full DSi-mode homebrew from SD card, which Sudokuhax already does.

  • 4 yellows8 // Jan 30, 2011 at 11:27 am

    spinal_cord: Only launcher/sysmenu can activate DS-mode, DSiWare exploits can’t access the registers for that since the titles’ arm7 crt0 disables access to those registers. Even if that was possible, the loaded homebrew couldn’t access SD card in ds-mode and would have to use flash card for FAT.

  • 5 SifJar // Jan 30, 2011 at 3:23 pm

    spinal_cord & yellows8: In addition to what yellows8 said, even if it were possible to switch to DS mode, surely a flash card couldn’t be used for FAT because slot-1 can’t be accessed once DSiWare has been launched? Or would that be negated by theoretical DS mode activation?

  • 6 yellows8 // Jan 30, 2011 at 3:31 pm

    SifJar: I’m assuming that slot1 hw disable is only for DSi-mode, after switching to DS-mode I’d assume that slot1 could be accessed regardless if slot1-access was disabled before activating DS-mode.

  • 7 RuinPf // Feb 1, 2011 at 8:45 am

    I try the Sudokuhax, but failed.

    py:
    $ python dsisavpatch.py 4B344445.bin inject.bin
    opening http://bootmii.org/dsiexploits/inject/upload.php
    ProtocolVer 1000 is good!
    trying /dsiexploits/inject/poll.php with hash as 46264e10fc342d05414473d58bab9ff71630cfa1
    bad times, we got 500 reply

    win32:
    >injectrawsav.exe 4B344445.bin
    injectrawsav v1.0
    Uploading data and retrieving bins from server…
    Error, server reply:
    Injection/resign failed. Perhaps you used an unsupported title input.

    I have US Region DSi and Sudoku.
    And I successed export Sudoku DSiWare.
    (4B344445.bin was exported to SD.)

    Might I have to do anything?

  • 8 yellows8 // Feb 1, 2011 at 9:17 am

    RuinPf: That’s the first I’ve heard of that fail, but apparently other people have been getting the same server decryption fail error since release day: there’s a total of 75 hits for that error. We’ll work on this elsewhere, send me an email to the address on here: http://dsibrew.org/wiki/DSiWare_VulnList

  • 9 igeek5 // Feb 1, 2011 at 6:54 pm

    just a question. i’m kinda new to all this, but is it possible to exploit other games in a similar manner? such as the web browser, or flipnote studio? what makes sudoku so special?

  • 10 yellows8 // Feb 2, 2011 at 12:17 am

    igeek5: Yeah we’re looking for more exploitable games. Sudoku had a savedata ASCII string buffer overflow. Flipnote uses UCS-2(UCS-2 isn’t exploitable) we haven’t found anything in flipnote and opera there’s nothing useful in savedata either. Basically we managed to exploit Sudoku not free titles because Sudoku used sprintf and strcpy, the free titles use UCS-2 for strings if anything.

  • 11 yellows8 // Feb 2, 2011 at 12:31 pm

    Nintendo removed the USA Sudoku TMD from the server, 404s: http://nus.cdn.t.shop.nintendowifi.net/ccs/download/000300044B344445/tmd

  • 12 getopenid.com/aj00200 // Feb 2, 2011 at 6:21 pm

    This is great news to hear. I started thinking that you gave up on the DSi. Sadly, I don’t have Soduku, but I think I know someone who does, so hopefully I will be able to try this out.

    Great work TT!

  • 13 Pachi-chan // Feb 9, 2011 at 3:50 pm

    I was browsing the DSi Shop today and I noticed several other EA titles on there.

    Considering that EA has already produced a title that was exploitable, why don’t we take a look at some of their other titles on the DSi Shop and see. I think I recall a Texas Hold ‘Em software there too or something like that. Not to mention there is other software in the 200 points section that is shovelware basically, and would likely be easy to exploit. I hope someone takes a look into that. XD

  • 14 yellows8 // Feb 9, 2011 at 8:15 pm

    Pachi-chan: You can help, read this: http://dsibrew.org/wiki/DSiWare_VulnList

  • 15 Pachi-chan // Feb 10, 2011 at 1:01 am

    You didn’t catch my intent proper, if I were skilled enough to test these vulns myself I would. :/

    However I don’t have skill to test them, and I likely wouldn’t know a vulnerability even if it slapped me in the face and raped me unless there were an already compiled program to plug the data into that plugs code in wherever it can and returns a visible “You found an exploit!” message. >_<

  • 16 Pachi-chan // Feb 10, 2011 at 1:03 am

    That’s why I made some suggestions, because aside from blindly editing that wiki page and adding titles I think should be tested, I’m only a smart end-user of this stuff. xD

  • 17 yellows8 // Feb 10, 2011 at 1:07 am

    Pachi: “If you know of DSiWare that has English-only string(high-scores, player name, high-scores that use username from system settings, etc) input, mention it on IRC EFNet #dsidev.” You’d only need to get some targets, we’d modify the tads(.bin files exported from data management) for you.

  • 18 dankboy // Mar 1, 2011 at 4:09 pm

    would it be posible to make sd card reader for the cyclods ievolution to load hackmii from as well, i have been looking for a homebrew app that reads sd slot in dsi mode to no avil

  • 19 yellows8 // Mar 4, 2011 at 2:03 pm

    dankboy: Hybrid cards can’t access DSi SD card.

  • 20 DsProjekts // Apr 28, 2011 at 6:29 am

    Hello, has anyone the unpatched sudoku by ea?
    When yes:
    Can anyone post it here or send me per email?
    dsprojektsteam@gmail.com

    Please!

    I search for it, but i couldnt found it!!

    Please

  • 21 Tux // Apr 30, 2011 at 12:53 pm

    Would it be possible to hack other WiiWare, like the ones included in Dsi XL ? Or even the photo channel (since pictures are in .bin format) ?

  • 22 yellows8 // Apr 30, 2011 at 9:14 pm

    DsProjekts: Exported DSiWare from data management are locked to the console it was exported from, attempting to copy someone else’s old Sudoku tad to your DSi will not work.(Tad header MAC address and tmd/srl console-unique keys would be different)

    Tux: Did you mean DSiWare? Other DSiWare can be exploited of course.(But I doubt the DSiWare which comes with XL is exploitable, not much in the saves for those) DSi photo app uses .jpg not .bin.(And no-one managed to crash the photo app either)

  • 23 DsProjekts // May 1, 2011 at 5:14 am

    yes i know, but i need it.
    please

  • 24 DsProjekts // May 1, 2011 at 5:15 am

    and probably it work on the 3Ds?

  • 25 yellows8 // May 1, 2011 at 11:08 pm

    DsProjekts: The only way to get you a vulnerable Sudoku tad would be to re-encrypt the console-unique encrypted sections, but we can’t do that with a web server. And we won’t do that manually either, just wait for other dsiwarehax.

    Yes other dsiwarehax should work on 3DS though in dsi-mode.(With eshop in late May) Transferring hax via the DSi->3DS system transfer should work, but if they changed the dsiware SD card export format/keys 3DS uses, hax couldn’t be injected that way for a long while.

  • 26 Patxinco // May 13, 2011 at 1:59 am

    I tried to copy Sudokuhaxx from SD to the internal memory of my DSi and no works with the new firmware v1.4.2 think is blocked…

  • 27 Tux // May 15, 2011 at 10:52 pm

    Hello, which ARM disassembler/reassembler did you use to hack Sudoku ?

  • 28 DsProjekts // May 16, 2011 at 8:20 am

    @yellow8
    ok, thanks

    but another question:
    have you or other people here the tmd file of the original sudoku game?

    i will downlaod the sudoku with nus downloader.

    i have redirected the nintendo server url to a local path.

    i have the original 00000001 and cetk file.
    but i need the original tmd file to decrypt it!

    please help me

  • 29 yellows8 // May 16, 2011 at 8:36 am

    Patxinco: Guess I have to RE settings more, afaict they didn’t change DSiWare sdcard import code much, but they did change a bunch of banner code.(not sure what for)

    Tux: I use arm-eabi-objdump.(I can’t afford IDA Pro, but I heard they aren’t really allowing individuals to get an IDA Pro license anymore either…)

    DsProjekts: You can’t redirect shop comms to download the old Sudoku, the tmd and ticket are downloaded via HTTPS. The cetk is not available on NUS.

  • 30 DsProjekts // May 16, 2011 at 8:50 am

    no, i have already the original 00000001 and cetf file, i have downlaodet it befor it wos removed.

    i have redirect the nintendo server url to a local directory and now nusd laod from my local directory.
    because i need nusd to decrypt dsiware, manuel it is not possible.

    but have anyone the OLD, ORIGINAL TMD file for sudokuhax and can upload it?

    sorry for my very bad english

  • 31 winmaster // May 17, 2011 at 5:31 pm

    @yellows8 I see on dsibrew that all future DSiWare HAXX will not work due to the System Menu’s refusal to import the save file. Is this true, and if so, how did Nintendo manage to do this?

  • 32 yellows8 // May 17, 2011 at 6:02 pm

    winmaster: It’s true, all DSiWareHax is dead with 1.4.2, details later.

    EDIT: Btw, it’s system settings(Data Management) which does DSiWare import from SD card, not launcher/sysmenu.

  • 33 winmaster // May 17, 2011 at 8:36 pm

    @yellows8 Thanks for the info. I thought the settings were a part of system menu.

  • 34 sean12345 // May 27, 2012 at 2:27 pm

    so, i updated my dsi to 1.4.4, so does this mean that there’s no hope for me to get homebrew on my dsi.
    and also, is there any possible way to get my dsi’s firmware back to 1.4.1?

  • 35 yellows8 // May 28, 2012 at 6:51 am

    Yeah once you update to 1.4.4 *all* means of DSi-mode code exec are dead unless you already had DSiWareHax prior to 1.4.2. With 1.4.2+ the only way to get DSiWareHax, is to solder your DSi to dump NAND, and extract dev.kp from it.

  • 36 rian2002 // May 31, 2012 at 11:32 am

    but how do you get sudoku on the dsi

  • 37 rian2002 // May 31, 2012 at 11:46 am

    i dont have enogh money to buy sudoku what now

  • 38 yellows8 // May 31, 2012 at 12:19 pm

    You can’t even use DSiWareHax anymore in the first place when you don’t have the required DSiWare.

  • 39 pocket fish // Aug 3, 2015 at 5:46 pm

    Any chance of the dsisave haxx source code being released now that it’s been a few years? Thanks!

  • 40 yellows8 // Aug 4, 2015 at 2:34 pm

    “source code being released” I don’t know.

You must log in to post a comment.