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

Plailect

Well-Known Member
OP
Member
Joined
Jan 30, 2016
Messages
546
Trophies
1
XP
1,502
Country
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,
D

Deleted User

Guest
Awesome! We'll test it out!

Edit: Didn't know what this was until I saw the Github 0.0
 
Last edited by ,

MelonGx

Well-Known Member
Member
Joined
Jan 8, 2009
Messages
1,653
Trophies
1
XP
915
Country
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,

Drowze

Well-Known Member
Member
Joined
Jan 6, 2013
Messages
63
Trophies
0
Age
31
XP
191
Country
Brazil
That's pretty impressive. Someone should make a section for titlekeys on "that iso website" :creep:
 

Joom

 ❤❤❤
Member
Joined
Jan 8, 2016
Messages
6,067
Trophies
1
Location
US
Website
mogbox.net
XP
6,077
Country
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,

Celediel

Well-Known Member
Newcomer
Joined
Jan 30, 2016
Messages
45
Trophies
0
Age
34
Location
Tacoma, WA
Website
burning.moe
XP
479
Country
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.

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,

Vappy

Well-Known Member
Member
Joined
May 23, 2012
Messages
1,508
Trophies
2
XP
2,613
Country
edit: Fixed all the Python2 syntax, yet urllib2 isn't supported by Python3. "Python 3 to be installed" is probably a typo then, lol.
"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.
 

WulfyStylez

SALT/Bemani Princess
Member
Joined
Nov 3, 2013
Messages
1,149
Trophies
0
XP
2,867
Country
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!
 

Xenosaiga

Time to switch it up
Member
Joined
Oct 9, 2015
Messages
1,501
Trophies
0
Age
33
Location
The Shadows
XP
1,070
Country
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!
Well people can all make their own "archive" as long as people share.
 

DocKlokMan

Plugin Dev
Member
Joined
Apr 20, 2007
Messages
3,009
Trophies
2
Age
36
XP
4,571
Country
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.
 

Relys

^(Software | Hardware) Exploit? Development.$
Member
Joined
Jan 5, 2007
Messages
878
Trophies
1
XP
1,239
Country
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!

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. :/
 

Plailect

Well-Known Member
OP
Member
Joined
Jan 30, 2016
Messages
546
Trophies
1
XP
1,502
Country
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. :/

"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.
 

Relys

^(Software | Hardware) Exploit? Development.$
Member
Joined
Jan 5, 2007
Messages
878
Trophies
1
XP
1,239
Country
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.

"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,

HariGp

Well-Known Member
Member
Joined
Jan 14, 2016
Messages
271
Trophies
0
Age
25
XP
163
Country
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.
 

cearp

瓜老外
Developer
Joined
May 26, 2008
Messages
8,725
Trophies
2
XP
8,510
Country
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 :)

--------------------- MERGED ---------------------------

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!
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,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: This movie rip so werid has 10180p quality but the audios ripped with movie theater audio quality