Hacking [Release] CoffeeCIA (A derivative of FunkyCIA)

alatnet

Member
OP
Newcomer
Joined
Aug 13, 2007
Messages
11
Trophies
0
XP
218
Country
United States
So I took FunkyCIA and converted it into a java program.
All credits for the basis of the program goes to @cearp.
He's the one that developed most of the code, I just adapted it to java and added some extra stuff.

Features:
GUI
Multithreaded (Hard limit to 5 threads per title)
Filter Selection
Reads http://3ds.essh.co/ xml file for title name list. XML must have that format for proper usage.

Issues:
Takes a while to load the ticket.db. this is due to it having to search for a specific string in the ticket.db file and it's scanning the entire file one byte at a time. Feel free to improve on that part of the program.

How to use the filter:
It is a bastardisation of a mysql query command fit for this program. Filter command is in this form: "titleid/regex/all WHERE type=type cid=regex SET build personal patch ignore download IGNORE titleid/regex/all" Regex is a regular expression. Beginning titleid MUST be a titleid/regex or "all" though can be omitted when using just IGNORE. "type" is ticket type in lowercase, i.e eshopapp, downloadplaychild, demo, updatepatch, dlc, dsiware, system, dsisystemapp, dsisystemdataarchives, mystery. "type" can be comma separated to select multiple types. SET command sets what action should be enabled. ignore and download set commands are NOT used at the same time.

Example filter commands:
- all SET ignore (ignore all tickets)
- IGNORE all (ignore all tickets)
- all WHERE type=system SET download build (download and build all tickets that are system)
- all WHERE type=dlc,demo SET download build patch (download, patch, and build dlc and demo tickets)
- all WHERE cid=00000000 type=eshopapp SET ignore (ignore tickets that have a console id of 00000000 and are a type of eshopapp)

Requires make_cdn_cia to build cia files!
Java Runtime 8 minimum!


Screenshot:
Screenshot.png


XML File Format:
Code:
<releases>
  <release>
    <name>title name 1</name>
    <titleid>0000000000000000</titleid>
  </release>
  <release>
    <name>title name 2</name>
    <titleid>0000000000000001</titleid>
  </release>
</releases>

GitHub Repository: https://github.com/alatnet/CoffeeCIA
 
Last edited by alatnet,

cearp

瓜老外
Developer
Joined
May 26, 2008
Messages
8,724
Trophies
2
XP
8,500
Country
Tuvalu
cool nice work.
what i wanted to implement in FunkyCIA was checking the validity of a ticket by verify the signature with the correct key (i am not sure if that key is public or shared somewhere) but the key stuff seemed a bit tricky in python, i think it was a separate module as well that would have to be included, that would be a chore :)
if you can add that it would be amazing, then we would not need to do the little checks for non legit tickets.
 

pikatsu

Well-Known Member
Member
Joined
Apr 16, 2014
Messages
845
Trophies
0
Age
39
XP
1,163
Country
Argentina
So I took FunkyCIA and converted it into a java program.

Features:
GUI
Multithreaded (Hard limit to 5 threads per title)
Filter Selection
Reads http://3ds.essh.co/ xml file for title name list. XML must have that format for proper usage.

Issues:
Takes a while to load the ticket.db. this is due to it having to search for a specific string in the ticket.db file and it's scanning the entire file one byte at a time. Feel free to improve on that part of the program.

How to use the filter:
It is a bastardisation of a mysql query command fit for this program. Filter command is in this form: "titleid/regex/all WHERE type=type cid=regex SET build personal patch ignore download IGNORE titleid/regex/all" Regex is a regular expression. Beginning titleid MUST be a titleid/regex or "all" though can be omitted when using just IGNORE. "type" is ticket type in lowercase, i.e eshopapp, downloadplaychild, demo, updatepatch, dlc, dsiware, system, dsisystemapp, dsisystemdataarchives, mystery. "type" can be comma separated to select multiple types. SET command sets what action should be enabled. ignore and download set commands are NOT used at the same time.

Example filter commands:
- all SET ignore (ignore all tickets)
- IGNORE all (ignore all tickets)
- all WHERE type=system SET download build (download and build all tickets that are system)
- all WHERE type=dlc,demo SET download build patch (download, patch, and build dlc and demo tickets)
- all WHERE cid=00000000 type=eshopapp SET ignore (ignore tickets that have a console id of 00000000 and are a type of eshopapp)

Requires make_cdn_cia to build cia files!
Java Runtime 8 minimum!


Screenshot:
Screenshot.png


XML File Format:
Code:
<releases>
  <release>
    <name>title name 1</name>
    <titleid>0000000000000000</titleid>
  </release>
  <release>
    <name>title name 2</name>
    <titleid>0000000000000001</titleid>
  </release>
</releases>

GitHub Repository: https://github.com/alatnet/CoffeeCIA

Cool but can anyone compile this for us who cannot?
 

cearp

瓜老外
Developer
Joined
May 26, 2008
Messages
8,724
Trophies
2
XP
8,500
Country
Tuvalu

Suiginou

(null)
Member
Joined
Jun 26, 2012
Messages
565
Trophies
0
Location
pc + 8
XP
738
Country
Gambia, The
so it is possible to dump a list of all titles/names/information from the eshop? or, maybe possible with this set up, but not easy/done yet, hmm it would be useful
You can query ninja for the title id -> eShop id lookup, then query samurai for the title name from the eShop id; the former requires ClCertA, the latter doesn't.

And yes, you can query the servers for all title info and title ID registered with it (ninja provides eShop id -> title id lookups too if I recall correctly).
 
  • Like
Reactions: cearp

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: @SylverReZ, Indeed lol