Official [Download] Decrypt9 - Open Source Decryption Tools (WIP)

Discussion in '3DS - Homebrew Development and Emulators' started by d0k3, May 15, 2015.

  1. d0k3
    OP

    Member d0k3 3DS Homebrew Legend

    Joined:
    Dec 3, 2004
    Messages:
    2,449
    Country:
    Germany
    Yes, I said I won't do updates here, but things have changed. I am now participating in coding of official Decrypt9 (instead of just doing some visual mods) and I am actively adding new features.

    This is a work in progress. For you that means that everything you download from here is pretty much bleeding edge, and that means that bugs may be possible. Everything that is released as a binary has been tested at least by me, on my N3DS v9.0.0 via Ninjhax. Still, for your own safety, make a NAND backup, use precaution and always keep your backups handy.

    An important request to everyone using this: The success of this highly depends on feedback. An unrecognised bug now may severely hinder development later on. If you're using this, be fair, leave some feedback. Let me know what feature(s) you used, on which system (O3DS / N3DS) and if everything worked as intended. Also, don't write PMs about stuff that can also be discussed in the open.

    You can run this only via arm9loaderhax and on 3DS consoles on and below v9.2 and you need to run it from SysNAND. Also, there won't be a official CIA of this. The ARM9 entry point required for this does not work well with CIAs. If you absolutely must have a CIA look here, here, here or here. ARM9LoadeHax, Gateway (browser), CakeHax and Ninjhax entry points are available.


    My own releases (source code is always up to date):
    ---------------------------------------------------------------------
    Download: https://github.com/d0k3/Decrypt9WIP/releases
    Source Code: https://github.com/d0k3/Decrypt9WIP
    ---------------------------------------------------------------------
    [​IMG] [​IMG] [​IMG]


    Shadowtrances releases (Almost up to date, might miss the newest features):
    ---------------------------------------------------------------------
    Download: https://github.com/Shadowtrance/Decrypt9/releases
    Source Code: https://github.com/Shadowtrance/Decrypt9
    ---------------------------------------------------------------------
    [​IMG] [​IMG] [​IMG]


    Shadowtrances releases contain a pleasant to look at menu and uses a working directory ("/Decrypt9/") instead of the root directory. Note that the Github source link above leads you to my fork of Decrypt9, changes are pulled into Archshifts official one, but that may take some time, so mine is (probably) more recent but also less tested.

    A readme file detailing everything that Decrypt9 can do is included in GitHub. Before you ask a question here in thread make sure the answer is not in included in the readme.

    Credits by Archshift
    • Roxas75 for the method of ARM9 code injection
    • Cha(N), Kane49, and all other FatFS contributors for FatFS
    • Normmatt for sdmmc.c as well as project infrastructure (Makefile, linker setup, etc)
    • Relys, sbJFn5r for the decryptor
    Credits by d0k3
    • Everyone mentioned by Archshift above
    • Archshift for starting this project and being a great project maintainer
    • b1l1s, Normmatt for their 'behind-the-scenes' work and for making arm9loaderhax support possible
    • patois, delebile, SteveIce10 for Brahma and it's updates
    • mid-kid for CakeHax and for hosting freenode #Cakey
    • Shadowtrance, dark_samus3, Syphurith, AuroraWright for being of great help developing this
    • profi200 for helpful hints that first made developing some features possible
    • Datalogger, zoogie, atkfromabove, mixups, key1340, k8099, Al3x_10m, Supster131, stbinan, Wolfvak, Gelex and countless others from freenode #Cakey and the GBAtemp forums for testing, feedback and helpful hints
    • Everyone I forgot about - if you think you deserve to be mentioned, just contact me
     
    Last edited by d0k3, Jun 27, 2016


  2. Shadowtrance

    Member Shadowtrance GBAtemp Addict

    Joined:
    May 9, 2014
    Messages:
    2,482
    Location:
    Hervey Bay, Queensland
    Country:
    Australia
    NoNAND, Fishaman P, Margen67 and 4 others like this.
  3. dela

    Newcomer dela Advanced Member

    Joined:
    Dec 6, 2014
    Messages:
    78
    Location:
    Cagliari
    Country:
    Italy
    :-) He works very well
     
    Nintendo Fanboy, Margen67 and d0k3 like this.
  4. DJPlayer

    Banned DJPlayer Banned

    Joined:
    May 21, 2015
    Messages:
    542
    Country:
    Netherlands
    Is there a way to add a Option to create Xorpads for AGB_FIRM (0x0004013800000202) on a N3DS via Ninjhax?
    This would help Riku to add Support for N3DS
     
  5. Shadowtrance

    Member Shadowtrance GBAtemp Addict

    Joined:
    May 9, 2014
    Messages:
    2,482
    Location:
    Hervey Bay, Queensland
    Country:
    Australia
    Erm probably, I'll have a look later. Kinda busy atm.
     
    ScarletKohaku likes this.
  6. DJPlayer

    Banned DJPlayer Banned

    Joined:
    May 21, 2015
    Messages:
    542
    Country:
    Netherlands
    argh, shit Dx
    Okay :)
    Would be awesome for everyone who only have a N3DS. I reaaaally want to play GBA-Games on 3DS <3
     
  7. d0k3
    OP

    Member d0k3 3DS Homebrew Legend

    Joined:
    Dec 3, 2004
    Messages:
    2,449
    Country:
    Germany
    I noticed that the 3DS Multi Decryptor by @Relys (which was the original version before @Archshift ported it for N3DS as decrypt9 and @Shadowtrance made some changes) actually contains a fifth option: dumping the NAND. Anyone know if there is a reason why that option had to go? I know we can simpy dump the NAND via GW launcher, but having it in decrypt9, or even inside another open source application would still be nice.
     
    Ronflex2.0 and prototech like this.
  8. Shadowtrance

    Member Shadowtrance GBAtemp Addict

    Joined:
    May 9, 2014
    Messages:
    2,482
    Location:
    Hervey Bay, Queensland
    Country:
    Australia
    Not sure why it wasn't included. Been wondering that myself.
     
    retrohead likes this.
  9. kactusss

    Member kactusss GBAtemp Regular

    Joined:
    Dec 10, 2012
    Messages:
    225
    Country:
    France
    It would be pretty nice indeed. I am looking forward for this.
     
  10. d0k3
    OP

    Member d0k3 3DS Homebrew Legend

    Joined:
    Dec 3, 2004
    Messages:
    2,449
    Country:
    Germany
    I can only suspect the reason would be that the old functions would for some reason not work on N3DS. Otherwise we could simply include it back in, I think?
     
  11. Shadowtrance

    Member Shadowtrance GBAtemp Addict

    Joined:
    May 9, 2014
    Messages:
    2,482
    Location:
    Hervey Bay, Queensland
    Country:
    Australia
    No idea,
    You've got better coding skills than me. :P Try adding it and see how it goes. :)
     
  12. d0k3
    OP

    Member d0k3 3DS Homebrew Legend

    Joined:
    Dec 3, 2004
    Messages:
    2,449
    Country:
    Germany
    Yup, I'll try that. The function seems simple enough and nothing much can go wrong (I hope), so more on that later. The relevant code is found here, btw.

    But, while were at it, I'll be honest, but I'm not entirely sure about how to proceed from a NAND dump plus NAND XORpad. Which tool would be needed to decrypt the NAND and what can we do with a decrypted NAND? Maybe there's a way to view the NAND file system?

    Basically, the same for the SD XORpads and also what does Titlekey decryption do? I honestly ever only used the NCCH padgen option :D.
     
    kactusss likes this.
  13. neobrain

    Member neobrain -

    Joined:
    Apr 25, 2014
    Messages:
    306
    Country:
    Spain
    Decrypt9 is not a port of anything.
     
  14. d0k3
    OP

    Member d0k3 3DS Homebrew Legend

    Joined:
    Dec 3, 2004
    Messages:
    2,449
    Country:
    Germany
    Yeah, I think I got it now. Relys started the development of decrypt9 and included it in the 3DS Multi Decryptor package, then Archshift continued the developent and added Ninjhax compatibility.

    Anyways, about adding that functionality back in, it's not as easy as I thought. The up-to-date version of decrypt9 uses FatFs by ChaN for file system operations, the one inside the 3DS Multi Decryptor package uses some assembler functions (from what I see). Now, the important thing is, FatFs doesn't provide the functionality to access the NAND. Putting that back in (and not doing it in a quick and dirty way that may backfire later) would require rewriting the file system functions, in turn requiring rewriting everything. Not a good idea if you ask me, especially because such large scale changes to the source code tend to introduce bugs.

    A standalone NAND dumper may be a better idea, but then it's questionable if that makes sense given that NAND dumping is already available to everyone via the GW launcher.dat.
     
  15. Melon__Bread

    Member Melon__Bread ~It's A Magik~

    Joined:
    Dec 9, 2013
    Messages:
    709
    Country:
    United States
    True, but if all you have is 1 copy of CN it is a real pain to switch out the Ninjhax save & GW save every time.
     
  16. d0k3
    OP

    Member d0k3 3DS Homebrew Legend

    Joined:
    Dec 3, 2004
    Messages:
    2,449
    Country:
    Germany
    Yeah, but the point here is... How often will you actually dump your NAND? Even taking away the pain of switching around the installation in CN, dumping ~2GB takes ages with the 3DS' limited SD writing speed. And, having an up to date copy of the NAND is of limited use for people like us who never update anyways. I'll keep considering it, but for now I guess I'll put it to the bottom of the list.
     
  17. neobrain

    Member neobrain -

    Joined:
    Apr 25, 2014
    Messages:
    306
    Country:
    Spain
    The two projects don't have any relation - there's no "porting" or "continuing" done anywhere. They just happen to share a lot of code, but Decrypt9 was developed from scratch and separately.
     
  18. Melon__Bread

    Member Melon__Bread ~It's A Magik~

    Joined:
    Dec 9, 2013
    Messages:
    709
    Country:
    United States
    I agree, and even though I have a MSET for GW and CN for ninjhax I was just throwing that out their due to people complaining about switch CN saves.

    Also (I may be the exception) I dump my nand for my JPN N3DS to get update for JPN games and some other shop content I do not see posted on the boards. Though like I said I think I am the exception to the normal user, and having a Ninjhax NAND dumper would not make the task any simpler XD
     
  19. pikatsu

    Member pikatsu GBAtemp Advanced Fan

    Joined:
    Apr 16, 2014
    Messages:
    641
    Country:
    Argentina
    Agree to

    — Posts automatically merged - Please don't double post! —

     
  20. d0k3
    OP

    Member d0k3 3DS Homebrew Legend

    Joined:
    Dec 3, 2004
    Messages:
    2,449
    Country:
    Germany
    On the matter of NAND dumping (and more), I took a look at the rxTools source code. rxTools provides additional features over decrypt9, including...
    • dumping tickets
    • dumping NAND
    • decrypt NAND
    • ...
    Also, rxTools shares a lot code with decrypt9, even to the point where it would perhaps be possible to just take over Archshifts steps that initially made decrypt9 Ninjhax compatible. There are some differences, like the ncchinfo.bin using utf-16 filenames (should be easy to adapt). Don't get your hopes too up right now, though, because I'm only speaking about porting rxTools functionality, not rxTools itself, and I most likely cannot port EmuNAND (someone else with better knowledge might be able to). As with stuff like that there alse might be certain roadblocks. Anyways, (especially to the developers), any ideas about that?
     

Share This Page