Hacking [Release] FunkyCIA2 - build CIAs from your eShop content. Super easy and fast! (**2.1 FIX!**)

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,721
Trophies
2
XP
8,470
Country
Tuvalu
UPDATE - FunkyCIA "2.1":
I fixed the creation of legit preinstalled CIAs... my silly mistake... sorry for the time wasted and any frustration when people could not get it to work before!
TO MAKE A LEGIT CIA FROM A PREINSTALLED GAME, use:
FunkyCIA2.py myticket.db -title TITLEID -preinstalled

^^^ the command is that easy. (not need to use -noignore anymore)
REMEMBER, if you make a CIA from your bundled game, then it will work on any 3DS, without any hacks/patches! So if my 3DS came with Animal Crossing preinstalled, I could make a CIA of it and when installed on a 3DS of the same region, it would appear 100% legit! It would work in sysnand/classic mode, and you could system transfer it to another 3DS etc :)
Also, I added '-personal', which will leave your unique ids in the CIA intact. This is so we can make perfect backups for our own system.
(As opposed to wiping the ids by default, which make it installable on all consoles + requiring us to use GW or CFW to (install?) + run it) I do not know why, but when I make personal CIAs that should only work on my console, they do not install... I have not tested for a few months, but I hope we can fix it it possible.

USE FunkyCIA WITH FW 9.2 or below:
TRY THIS
http://gbatemp.net/threads/release-rxtools-roxas75-3ds-toolkit-fw-2-0-9-2.382782/ (thanks Roxas75!)
Now that Decrypt9 supports generating ctr fat16 xorpads, we can decrypt our nand on 9.2 and extract the ticket.db and use it with FunkyCIA :)
This thread will not tell you how to extract files from your nand, or help you with that, it is a separate task :) let's keep this thread for FunkyCIA specific things
For 4.x, naturally the ticket.db dumper is easier and faster to use. gbatemp.net/threads/funkycia-guide-how-to-make-cias-from-your-eshop-stuff.377015/#post-5228804)


-------------------------------



Ok, here is FunkyCIA2!
It has some nice updates over the first version.
  • Patch to give permission for all DLC (not just the piece of DLC you bought). = buy one theme, get permission for them all. buy one piece of dlc for a game, be able to use them all.
  • Patch to remove demo play limit. = Demo games will not be limited to 30 plays, or 5 plays etc, they are unlimited. (You are able to disable DLC and demo patching if desired)
  • Custom output directory. = you can tell FunkyCIA to save the output in a folder called 'mariokart'. Maybe if you are just downloading mario kart, it makes organization easier.
  • Ignore titles. = You can download all titles of a certain type or types, but choose to ignore specific games. For example, downloading all updates, but not the update for mario kart 7 and pokemon x, you can type this "-type updates -ignoretitles 0004000E00030700 0004000E00055D00"
  • Retry connection. = When something cannot be downloaded, it will try 4 more times to download it, usually this fixes any errors. The retry amount can be changed from 0 to 9.
  • Download error catching. = When something cannot be downloaded, instead of the tool dying, the problem titleid will be logged to a text file and it will just continue on to the next title to be downloaded.
  • Shows amount of content files that will be downloaded for the current title, and their filesize
  • Duplicate and 'bad' ticket handling. = Only one of each title is downloaded. Some tickets are weird and seem to not be real tickets, these are now ignored.
  • Tickets that are not attached to your eshop account/console are ignored. = This means games you installed from cias you downloaded will not be detected, only legit stuff you downloaded from shop/bought yourself will be processed. Unfortunately, this also means that bundled games will not be detected. This can be forced off by using "-noignore". Then, 'everything' will be processed.
  • System titles are now ignored (since as above, they are not attached to your eshop account) - No real reason to create system FW cias from your ticket.db anyway, everyone's system fw apps are the same.
  • Also I fixed the error log function, so it only makes 1 log for all the errors, as opposed to 1 log for every individual error I think
Type "FunkyCIA2.py -h" to get the help menu/description, so you can see what argument does what.
FunkyCIA needs your ticket.db!
READ HERE ON HOW TO GET IT (4.x only so far) -
gbatemp.net/threads/funkycia-guide-how-to-make-cias-from-your-eshop-stuff.377015/#post-5228804


3DS fw 2.0 - 9.2
http://gbatemp.net/threads/release-rxtools-roxas75-3ds-toolkit-fw-2-0-9-2.382782/



I hope the wording in the output is understandable. If it is not clear, I can edit it to make it easier to understand.
I have not had this tested by anyone, only myself. I think it works fine, let me know if there are problems :)
Thanks for friendxsis for telling me the cool cetk method, riku for help, sbJFn5r (I think?) for dumpTicketKeys I originally based this off :) - and 3dsguy and 173210 for make_cdn_cia
 

Attachments

  • FunkyCIA2 - FunkyCIA v2.1.zip
    77.1 KB · Views: 8,463
Last edited by cearp,

tyons

Well-Known Member
Member
Joined
Jul 11, 2012
Messages
657
Trophies
1
XP
282
Country
Italy
mmmmh, what is the ticket.db? lol
(of course I'll search here and with google, but a quick explanation would save some people's time)
 

einstein95

Well-Known Member
Member
Joined
Aug 31, 2013
Messages
230
Trophies
0
Age
29
XP
312
Country
New Zealand
After seeing the same code in the system update downloader, may I ask the reasoning behind
Code:
import hashlib
...
windoze = '9c4f88f706dedde3bc0ebb66e34963e5'
...
execname = './make_cdn_cia'
if hashlib.md5(sys.platform).hexdigest() == windoze:
    execname = 'make_cdn_cia.exe'
when you don't even need hashlib:
Code:
execname = './make_cdn_cia'
if sys.platform == 'win32'
    execname = 'make_cdn_cia.exe'
 
  • Like
Reactions: cearp

sonic2756

Friendly Neighborhood Wolf
Member
Joined
Feb 3, 2010
Messages
673
Trophies
1
Age
26
Website
www.keenbrigade.com
XP
1,178
Country
United States
Just before I was going to convert all my eShop stuff to .cia.

Gonna make moving my eShop content from my US XL to my EU NXL a breeze (whenever GW releases 9.x support :c).

Thanks so much for this :D
 

bartekowca666

Active Member
Newcomer
Joined
Oct 19, 2014
Messages
32
Trophies
0
Age
29
Location
Białogard
XP
167
Country
Poland
Actually, Magikarp uses splash to attempt to leap over mountains.
It's not a Gyarados because it has failed the attempt.
Hence, no existing Magikarp can be said to have leap over mountains as the moment it does so it becomes Gyarados.
*off topic end*

How does this tool get the decrypted keys without the 3DS to generate it?

B BUTTON
 

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,721
Trophies
2
XP
8,470
Country
Tuvalu
After seeing the same code in the system update downloader, may I ask the reasoning behind:
code stuff

because i was playing with python, no reason at all :) -edit, ooh that reminds me, i forgot to package make_cdn_cia with it! thanks

Actually, Magikarp uses splash to attempt to leap over mountains.
It's not a Gyarados because it has failed the attempt.
Hence, no existing Magikarp can be said to have leap over mountains as the moment it does so it becomes Gyarados.
*off topic end*

How does this tool get the decrypted keys without the 3DS to generate it?

i don't understand, is that trying to be a compliment or an insult (that i attempted/failed etc)? or is it about the picture? (which made me lol a few times)
it does NOT get the decrypted keys, it does not need them! that is why it is funky, and cool, and easy to use :)


-edit - I updated the zip, it now contains a mac executable for make_cdn_cia (that i compiled, that works perfect for me on yosemite), and a windows exe.
 
  • Like
Reactions: ScarletCrystals

Omer

Well-Known Member
Member
Joined
May 13, 2014
Messages
260
Trophies
0
Age
38
XP
803
Country
Great. That means anyone can share his own eshop games.We don't have to depend on the scene release anymore.
 

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,721
Trophies
2
XP
8,470
Country
Tuvalu
Does this mean we'll soon be able to convert 3ds to cia without decrypting using a 3ds?

no, this is eshop only. it uses the 'eshop program database' of the things that your 3ds has downloaded. (system things too but, yeah no 3ds roms :))

Great. That means anyone can share his own eshop games.We don't have to depend on the scene release anymore.

it was still possible before, but this makes it really easy, the only tricky part is to get your ticket.db, maybe someone will make an app for that though...? (there are links in the op on how to do it)
 
  • Like
Reactions: Omer

Rinnux

Well-Known Member
Member
Joined
Aug 3, 2010
Messages
655
Trophies
0
Age
29
XP
705
Country
United States
no, this is eshop only. it uses the 'eshop program database' of the things that your 3ds has downloaded. (system things too but, yeah no 3ds roms :))

I know this is currently for eshop things. I'm wondering if in the future this new method can be implemented to convert 3ds to cia.
 

ScarletCrystals

Useless Bunny of Paradise
Member
Joined
Apr 9, 2010
Messages
941
Trophies
0
Age
33
Location
Bamboo Forest, Gensokyo
XP
421
Country
Canada
i don't understand, is that trying to be a compliment or an insult (that i attempted/failed etc)? or is it about the picture? (which made me lol a few times)
it does NOT get the decrypted keys, it does not need them! that is why it is funky, and cool, and easy to use :)


-edit - I updated the zip, it now contains a mac executable for make_cdn_cia (that i compiled, that works perfect for me on yosemite), and a windows exe.
Actually, I was just poking fun at the guy who was using mythology to say Magikarp is awesome. Been playing too much Phoenix Wright lately so pointing out a little "contradiction".
It wasn't suppose to say anything about you personally and I hope you're not offended by it.

That is really funky indeed. So why did we need the decrypted keys before to download stuff from the cdn?
 
  • Like
Reactions: Phantom_User

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,721
Trophies
2
XP
8,470
Country
Tuvalu
It wasn't suppose to say anything about you personally and I hope you're not offended by it.
That is really funky indeed. So why did we need the decrypted keys before to download stuff from the cdn?
haha no problem at all, i just didn't understand what you meant!
we needed the keys because before to make the cia we had to decrypt the contents, makerom cannot use raw (well, maybe raw is not the correct word) - makerom cannot use the files untouched from cdn, they need to be decrypted.
make_cdn_cia CAN (maybe has to) use untouched files straight from cdn, making a purer cleaner cia.
so, we do not need the keys because we do not need to decrypt them.
but this is not simply an automation tool that just downloads and runs make_cdn_cia :)
i had to do some magic to make it work!
 
  • Like
Reactions: ScarletCrystals

ScarletCrystals

Useless Bunny of Paradise
Member
Joined
Apr 9, 2010
Messages
941
Trophies
0
Age
33
Location
Bamboo Forest, Gensokyo
XP
421
Country
Canada
haha no problem at all, i just didn't understand what you meant!
we needed the keys because before to make the cia we had to decrypt the contents, makerom cannot use raw (well, maybe raw is not the correct word) - makerom cannot use the files untouched from cdn, they need to be decrypted.
make_cdn_cia CAN (maybe has to) use untouched files straight from cdn, making a purer cleaner cia.
so, we do not need the keys because we do not need to decrypt them.
but this is not simply an automation tool that just downloads and runs make_cdn_cia :)
i had to do some magic to make it work!
Ah I see.
Thank you very much for the explanation and the tool!
 
  • Like
Reactions: cearp

Duo8

Well-Known Member
Member
Joined
Jul 16, 2013
Messages
3,613
Trophies
2
XP
3,008
Country
Vietnam
Maybe it doesn't work in sysnand because it's not properly encrypted, or a part of it was not signed.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BigOnYa @ BigOnYa:
    Most of the time yea I knew, I watch and read the news regularly, but sometimes the Hollywood BS stuff, like concerning actors slip by me. I don't follow most Hollywood BS (example: the Kardasians)
    +2
  • S @ salazarcosplay:
    @BigOnYa there were relevant issues before south park was made, that's why i think a south park prequel/spinoff would be great. Randy and his friends in their child hood
    +1
  • BigOnYa @ BigOnYa:
    Yea, like them running in high school together, getting into stuff, and how they got hitched and had kids. And how the town of South Park was back then compared to now. That would be cool to see.
  • BakerMan @ BakerMan:
    yeah
  • The Real Jdbye @ The Real Jdbye:
    @salazarcosplay if they made a prequel, it would still be about current issues, cause it doesn't make sense to make it about stuff that happened 30 years ago that nobody cares about anymore
  • The Real Jdbye @ The Real Jdbye:
    it's too late
  • The Real Jdbye @ The Real Jdbye:
    the older south park episodes about particular issues usually age poorly since the topic is no longer relevant
  • The Real Jdbye @ The Real Jdbye:
    an exception is giant douche vs turd sandwich, that's always relevant :P
    +1
  • K3Nv2 @ K3Nv2:
    I was gone for like an hour and none of you thought to write or call pos
  • BigOnYa @ BigOnYa:
    We knew you were going to Sonic to get lunch.
  • K3Nv2 @ K3Nv2:
    Sonics fast I would've been home in 10 mins
  • BigOnYa @ BigOnYa:
    Meet and greet with AncientBoi then?
  • K3Nv2 @ K3Nv2:
    That would've gone slow he's old
    +1
  • ZeroT21 @ ZeroT21:
    sadly the person in question feels too young for his own good
  • K3Nv2 @ K3Nv2:
    We don't question people
  • ZeroT21 @ ZeroT21:
    me neither, i just bash them
  • K3Nv2 @ K3Nv2:
    We just question @AncientBoi
  • ZeroT21 @ ZeroT21:
    it wasn't a question, it was fact
  • BigOnYa @ BigOnYa:
    He said he had 3 different doctors apt this week, so he prob there. Something about gerbal extraction, I don't know.
    +1
  • ZeroT21 @ ZeroT21:
    bored, guess i'll spread more democracy
  • LeoTCK @ LeoTCK:
    @K3Nv2 one more time you say such bs to @BakerMan and I'll smack you across the whole planet
  • K3Nv2 @ K3Nv2:
    Make sure you smack my booty daddy
    +1
  • LeoTCK @ LeoTCK:
    telling him that my partner is luke...does he look like someone with such big ne
    eds?
  • LeoTCK @ LeoTCK:
    do you really think I could stand living with someone like luke?
    LeoTCK @ LeoTCK: do you really think I could stand living with someone like luke?