Announcing RocketLauncher! The first exploit with unlocked Arm7!

Discussion in 'NDS - Emulation and Homebrew' started by Apache Thunder, Jul 2, 2017.


    Looks like NoCash found an exploit that is even better then RocketLauncher:

    He titled it Unlaunch. The exploit works by exploiting a flaw in Stage2 and apparently works on all firmware versions. It requires you run the installer from a DSiWare based hax environment as access to SD/NAND is required. (thus you can't run this from Slot-1 based TWL exploit)

    The flaw in stage2 is a buffer overflow involving Launcher's TMD file. If you provide a larger then normal TMD file, it will attempt to load the TMD into ram anyways (this occurs before it does the RSA check) This causes it to overwrite some code in arm9 ram causing arm9 to execute the custom payload. The full details are found in the info menus in the installer.

    Note however the installer does not appear to work correctly at the moment. I'd advise you not attempt to install it from the installer. Use the manual install method instead. BUT I'd highly recommend you have a hard mod before attempting manual install. If you have had experience modifying your nand you may be ok doing this. But for safety sake I would just advise against that until the installer works properly.

    (this is one reason why RL hasn't been released yet. No proper installer tools are available yet and we don't want people bricking consoles trying to install it)

    The release of this exploit may impact our plans regarding RocketLauncher. I'll post more about this once StuckPixel has decided to comment on this.

    Important Notice:

    Do NOT visit Data Management in DSi System Settings or use the 3DS Transfer tool after installing unlaunch. You WILL brick the console. Wait until HiyaCFW is refined/released properly so that SD redirected version of Launcher can be used or when NoCash decides to implement his own version of the SD redirect patch.

    Today I can finally announce a new exploit for the Nintendo DSi. I 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:

    1. The exploit requires 1.4.0 firmware! Older or newer fw revisions do not work!
    2. The exploit requires a flashcart that you are able to modify the internal rom it presents to the system.
    3. Details on which cards will be compatible will be revealed at a later time.
    4. The exploit involves a buffer overflow flaw involving section 3 of the white list.
    5. This overflow occurs on arm7 thus allowing overwriting memory exclusive to arm7.
    6. As a result a large enough overflow will hit the IRQ interrupt handler. This is how we gain code execution.
    7. Arm9 was relatively easy to take over. Though data caching presented a minor roadblock while testing on hardware. :P
    8. I currently use a modified build of nds-bootloader from WinterMute's github. You know, that portion of hbmenu responsible for booting SRLs. :P
    9. 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
    10. 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 consistant 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.
    11. The exact machanics 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!

    When things are ready I will update this thread!
    Discussion (934 replies)
  1. Jhynjhiruu

    Jhynjhiruu GBAtemp Advanced Fan

    Dec 31, 2016
    Edit: First!
    Last edited by Jhynjhiruu, Jul 2, 2017
    Anonymous456 and NutymcNuty like this.
  2. Dr. Dew

    Dr. Dew GBAtemp Fan

    Oct 31, 2015
    Heck yeah!
  3. Coto

    Coto -

    Jun 4, 2010
    ARM9 write back method (not just the name, but also HOW it is useful for speeding up read/writes) takes some time to figure (this is old docs I had for years) .

    Brief definition of drain write buffer ability
        // <-- good explanation.
        //Basically TCM is allowed to write-miss / write-back without causing external access (to whatever memory is connected to TCM).
        // If write-miss, data (changes) is buffered locally. If write-back happens the cache-line is marked as dirty ONLY (no external access), causing two scenarios:
        //a) if a read happens, and ALSO causes a cache-hit, no external accesses happen. Speedups everything, literally.
        //b) later, sooner or later, when a read cache-miss happens, before the old cache-line dirty is updated, a write-back happens.
        //Basically: Access/Write external memory, ONLY when reads cause a cache-miss. Otherwise Writes are "cached".
        //DrainWrite buffer Opcode makes sure all writes buffered HAPPEN! if Data Writes mode is set to Write-back.
    Then we have Data / Instruction Caches enabled for regions but that is another topic.
    Last edited by Coto, Jul 2, 2017
    iAqua, I pwned U! and DinohScene like this.
  4. DinohScene

    DinohScene Feed Dino to the Sharks

    GBAtemp Patron
    DinohScene is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    Oct 11, 2011
    Unfortunately, I already have a hacked DSi, none the less, very neat.
    Especially since this doesn't involves soldering which makes extracting data from DSi's easier in the future for archival purposes.
  5. Mazamin

    Mazamin GBAtemp Advanced Maniac

    Sep 4, 2014
    That's really cool! Thanks for developing this!
    Last edited by Mazamin, Jul 2, 2017
  6. Thunder Hawk

    Thunder Hawk Firefox Master Race

    Jan 21, 2013
    United States
    Long live Buzzhax RocketLauncer!
    TeamScriptKiddies likes this.
  7. metroid maniac

    metroid maniac An idiot with an opinion

    May 16, 2009
    Amazing work, I'm glad that we finally have a hack that grants full control of the platform.
    Now I just have to hope that it'll work with my trusty AK2i. And I'll need to get a DSi as well!
  8. CeeDee

    CeeDee Doing The Best I Can

    GBAtemp Patron
    CeeDee is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    May 4, 2014
    United States
    I can't wait to see mass produced hack cards for this and ntrboothax. Coldboot full system hax are wonderful things.
  9. Valery0p

    Valery0p GBAtemp Fan

    Jan 16, 2017
    That's a pretty awesome teamwork!
    And still we haven't seen that mysterious dsiware exploit/s *coff* *coff*
    @Normmatt sorry to bother You, but do You think all the flashcards reversed to work with (3ds)magnetHax, will work with rocketLauncer?
    MyDePain likes this.
  10. Lilith Valentine

    Lilith Valentine GBATemp's Wolf-husky™ definitely not Lilith

    Sep 13, 2009
    Many moons away
    It took way too long for interest in the DSi to spark, but I am happy to see that it did spark
    ry755, jamezfat, Anonymous456 and 8 others like this.
  11. Ranomez

    Ranomez Advanced Member

    Feb 13, 2016
    When a new DSiWare hax appears (if it does) will we get a guide on how to downgrade to 1.4?
  12. tntmod54321

    tntmod54321 Member

    Mar 26, 2017
    United States
  13. Zabhahs

    Zabhahs Goron

    Sep 20, 2015
    United States
    Seattle area
    rip 1.4.5 users... i guess ill wait for that other exploit :(
  14. Billy Acuña

    Billy Acuña GBAtemp Addict

    Oct 10, 2015
    Nahh, you just hardmod or dsiwarehax to downgrade.
  15. Plstic

    Plstic Guru Meditation Error

    Apr 21, 2010
    United States
    Milwaukee WI
    swag swag. hopefully downgrading is ez if you already have sudohax.
  16. The Real Jdbye

    The Real Jdbye Always Remember 30/07/08

    GBAtemp Patron
    The Real Jdbye is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    Mar 17, 2010
    Well, that depends on if the devs implement support for all of the same cards. But potentially yes, since both exploits have the same requirements (a flashcart with a reflashable ROM), the rest is up to the devs.
    Gamer4647 likes this.
  17. sieroi

    sieroi GBAtemp Regular

    Apr 29, 2015
    Fantastic. So many years later, too!
  18. eduall

    eduall GBAtemp Regular

    May 29, 2014
    i'm 1.4.5 :( and don't have dsiware hax :/
  19. sieroi

    sieroi GBAtemp Regular

    Apr 29, 2015
    If you have Flipnote Studio and the DSi Browser installed, there'll be an exploit for one of those along at some point. It's apparently in the works.