[Release] PlaiCDN: Download and create installable CIAs (or .3ds) with just a title ID and titlekey

Discussion in '3DS - Flashcards & Custom Firmwares' started by Plailect, Apr 7, 2016.

  1. Plailect
    OP

    Plailect GBAtemp Advanced Fan

    Member
    516
    1,222
    Jan 30, 2016
    United States
    https://github.com/Plailect/PlaiCDN

    Title IDs for any game can be found on 3dsdb.

    Titlekeys are not console unique, but are different for each game. Titlekeys for all games installed to your 3DS can be retreived by dumping decTitleKeys.bin from the Titlekey Decrypter menu on Decrypt9WIP, then running my script in the same directory as this file with the "-deckey" flag.

    Note that any illegitimate game installed will probably NOT have a valid titlekey. You can print just valid titlekeys by running my script in the same directory as decTitleKeys.bin with the "-checkbin" flag, which will download a small part of each title and decrypt it with the key to check if it is valid.

    Titlekeys are copyrighted content and can not be shared here. I will not judge you for how you use this script, but I am not liable if you use it for piracy.

    For more information on how this script works, check out the great writeup by /u/topkeknosnek

    This project was forked from CDNto3DS and includes expanded features and capabilities, including use on non windows platforms thanks to its reliance on PyCrypto instead of aescbc.

    How is this different from the original CDNto3DS?

    PlaiCDN can do the following the CDNto3DS cannot:
    1) Check titlekeys
    2) Extract titlekeys from decTitleKeys.bin
    3) Batch check titlekeys from decTitleKeys.bin
    4) Work on platforms that aren't windows (CDNto3DS *might* if you get aescbc to compile for anything else)
    5) Relies only on python libraries and makerom
    6) Pull title metadata directly off eshop
    7) Decrypt the incoming datastream instead of downloading then decrypting (half the file sizes)
     
    Last edited by Plailect, Apr 11, 2016


  2. SirBeethoven

    SirBeethoven 3.145.... something. E=mc2

    Member
    1,801
    553
    Nov 26, 2015
    United States
    Awesome! We'll test it out!

    Edit: Didn't know what this was until I saw the Github 0.0
     
    Last edited by SirBeethoven, Apr 7, 2016
  3. Arthurgamer07

    Arthurgamer07 Advanced Member

    Newcomer
    60
    10
    Dec 17, 2015
    Brazil
    Amazing work! Congrats
     
  4. MelonGx

    MelonGx GBAtemp Advanced Maniac

    Member
    1,634
    439
    Jan 8, 2009
    China
    Does this pass through SEED encryption?
    If no, then it's similar to FunkyCIA.

    FunkyCIA uses ticket.db's CETK to package a workable CIA.
    This uses decTitleKey.bin's titlekey instead of CETK.
     
    Last edited by MelonGx, Apr 7, 2016
  5. Just Passing By

    Just Passing By GBAtemp Advanced Maniac

    Member
    1,562
    594
    Jan 3, 2016
    United States
    So... I read "download" and "cia" in the same title and well... here I am. :ha:
     
    ferofax, CeeDee, jimmyleen and 3 others like this.
  6. Drowze

    Drowze Advanced Member

    Member
    61
    19
    Jan 6, 2013
    Brazil
    That's pretty impressive. Someone should make a section for titlekeys on "that iso website" :creep:
     
  7. Joom

    Joom  ❤❤❤

    Member
    3,889
    2,616
    Jan 8, 2016
    United States
    /that ISO site

    Also.
    Code:
     File "PlaiCDN.py", line 57
    
        print 'Usage: PlaiCDN.py <TitleID TitleKey [-redown -redec -no3ds -nocia] or [-check]> or [-deckey] or [-checkbin]'
    
                                                                                                                          ^
    
    SyntaxError: Missing parentheses in call to 'print'
    Need to proofread your code a bit.
     
    Last edited by Joom, Apr 7, 2016
  8. Celediel

    Celediel Member

    Newcomer
    19
    10
    Jan 30, 2016
    United States
    Tacoma, WA
    Run with Python2. Github says Python3 is required, yet the code uses Python2 syntax...

    edit: Fixed all the Python2 syntax, yet urllib2 isn't supported by Python3. "Python 3 to be installed" is probably a typo then, lol.
     
    Last edited by Celediel, Apr 7, 2016
  9. Xenosaiga

    Xenosaiga That one guy that doesn't give a shit anymore

    Member
    1,478
    838
    Oct 9, 2015
    United States
    The Shadows
    Now we just need a list of all valid title keys. If only somebody could find these and share.
     
  10. Joom

    Joom  ❤❤❤

    Member
    3,889
    2,616
    Jan 8, 2016
    United States
    Cool, that works. Sorry for speaking so soon.
     
  11. Vappy

    Vappy GBAtemp Advanced Maniac

    Member
    1,507
    1,154
    May 23, 2012
    "The urllib2 module has been split across several modules in Python 3 named urllib.request and urllib.error"
    Haven't tried it myself, but maybe you can get it working with Python 3.
     
  12. WulfyStylez

    WulfyStylez SALT/Bemani Princess

    Member
    1,149
    2,608
    Nov 3, 2013
    United States
    I don't often comment on piracy but; uploaders: remember to keep uploading full games and not just exclusively titlekeys! It's important for the sake of long-term archival (think 10-15 years from now) that people don't only redistribute content in a way dependent on Nintendo content servers which will go down some day. This same sort of thing gutted the PS3's software archivability a few years ago.
    Besides that it's your prerogative, ofc. Just wanted to make that point since game archival is important my dudes!
     
  13. Xenosaiga

    Xenosaiga That one guy that doesn't give a shit anymore

    Member
    1,478
    838
    Oct 9, 2015
    United States
    The Shadows
    Well people can all make their own "archive" as long as people share.
     
  14. Joom

    Joom  ❤❤❤

    Member
    3,889
    2,616
    Jan 8, 2016
    United States
    I plan to. I have 2 TBs waiting to be filled.
     
    Xenosaiga likes this.
  15. AnalogMan

    AnalogMan sumoCheatMenu Dev

    Member
    1,413
    831
    Apr 20, 2007
    United States
    Keep in mind this is only for eShop titles and you still need to decrypt some files using Decrypt9 on your 3DS after downloading them before you can make a CIA or 3DS file out of them.

    In short:
    1. Run script with Title ID and Title Key.
    2. Copy downloaded DEC files to D9Game folder on 3DS.
    3. Decrypt DEC files on 3DS.
    4. Copy decrypted DEC files back to PC, overwriting encrypted ones.
    5. Resume script to get CIA and/or 3DS file.
    If you need the CIA patched for region free or crypto fixed this will not do that.
     
  16. Relys

    Relys Master of Computer Science

    Member
    863
    788
    Jan 5, 2007
    United States
    Yeah, I complete agree with this. What will happen when Nintendo takes down the servers? :/ This is why I believe in the users right to backup copies of games they purchase. DRM and non-physical based copies only hurts the users!

    Also, this method has been available for ages and the majority of the code is @sbJFn5r and I's: https://github.com/Relys/3DS_Multi_Decryptor/tree/master/to3DS/CDNto3DS. If you want to contribute please submit a pull request as opposed to forking off my project and slapping your name on it. :/
     
    FONZD, Dartz150, sbJFn5r and 2 others like this.
  17. Plailect
    OP

    Plailect GBAtemp Advanced Fan

    Member
    516
    1,222
    Jan 30, 2016
    United States
    "Majority of the code"

    According to git, this is considered a "rewrite" and is more than half mine (not sure how git counts this, could be incorrect but the point still stands).

    I totally redid core functionality, and added several features. This is more than a minor update and "slapping my name on it" like you're trying to portray, and major changes (such as the complete replacement of aescbc) are what forks are for.
     
  18. Relys

    Relys Master of Computer Science

    Member
    863
    788
    Jan 5, 2007
    United States
    "According to git" is not a license and is a completely bullshit point (said every Software Engineer ever). I could send you a DMCA take down notice if you want to be technical as I never attributed a license (I should probably GPL it eventually). Removing a dependency is not a "major change" and would have been a perfectly acceptable pull request. Also, slapping your name on a forked project (or any project really *looks at countless other unoriginal CFW projects*) is just greasy. Do you see me slapping my name on any tools I release? No, because I shouldn't have to! People should know it's your project because you wrote it, not because you forked another project and put your name on it *looks at countless other unoriginal CFW projects again*. You know what SALTs project is called? firmloader because it describes the exact functionality of the program. *sigh* I guess we will always have the problem of some kid forking bitcoin to create his own altcoin or linux to create his own distro with his name on it, but that is fucking lame (also those projects are under a copyleft license unlike mine).

    Do you know what bothers me the most? You didn't even bother to submit a pull request after releasing. This is NOT how you do open source (which again, my code isn't). This is how open source dies when there are a hundred billion forks of the exact same project with updates!
     
    Last edited by Relys, Apr 7, 2016
  19. HariGp

    HariGp GBAtemp Regular

    Member
    266
    51
    Jan 14, 2016
    India
    Hmmm.. I'm not sure how I would go about getting the titlekey and using the "-deckey" flag. Any help? How exactly does this work, still don't get it.
     
  20. cearp

    cearp the ticket master

    Member
    7,469
    4,706
    May 26, 2008
    Tuvalu
    i never got around to releasing 'GetCDN', i forgot about it, but it works a bit like this so not much point now lol

    still, if people wanted they could have just shared their tickets, and use FunkyCIA, people did that before a little :)

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

    that's why i never got around to uploading my thing, because i agree sharing the cia is more imporant than sharing the key. better for nintendo's cdn too.
     
    Last edited by cearp, Apr 7, 2016
    Miah_Molkot, MelonGx and liomajor like this.