Misc Project [URGENT] C# CIA Decryption

ndsboy87

Member
OP
Newcomer
Joined
Dec 2, 2023
Messages
16
Trophies
0
XP
41
Country
United States
I'm planning to release 3DSPal 2.0 ASAP, but need help, this is my second post I just didn't tag/word the other one correctly.

I am the developer for 3DSPal, and I also own 3DSTools organization on GitHub. I need to decrypt CIA's when a user downloads one via C#, but the problem is I have no knowledge about the decryption of CIA's and I definitely don't want to go from CIA Downloader to 3DS Downloader because that would be down-right useless. Let me know if you know how to/or have a C# script to decrypt CIA's. The reason I need this ASAP is because I'm upgrading CIA servers from http://streetpass.ct8.pl/port/ to https://3ds.bopdev.org/ (I would make a new domain for my 3DSTools thing but I just got scammed by namecheap when they told me my domain "3.ds" would be visible to everyone but apparently it was a handshake domain.)

3DSTools: https://github.com/3DSTools
3DSPal: https://github.com/3DSTools/3DSPal
My Github: https://github.com/ndsboy87
Contact Info - Discord: ndsboy87
 

anotherthing

Well-Known Member
Member
Joined
Mar 30, 2023
Messages
288
Trophies
0
Age
52
XP
376
Country
United States
I'm kind of fuzzy on what you're trying to do. However, before you answer in any detail, I have no idea how the CIA file format works nor do I know anything about C# other than it was MicroSoft's attempt to kill off Java. But I am curious as to what you're trying to do and the long term purpose of the 3DSPal.
 

ndsboy87

Member
OP
Newcomer
Joined
Dec 2, 2023
Messages
16
Trophies
0
XP
41
Country
United States
I'm kind of fuzzy on what you're trying to do. However, before you answer in any detail, I have no idea how the CIA file format works nor do I know anything about C# other than it was MicroSoft's attempt to kill off Java. But I am curious as to what you're trying to do and the long term purpose of the 3DSPal.
Real Nintendo CIA's (from the eShop) are encrypted, so to load it up to your 3DS normally, you need to decrypt the CIA file, using FBI or hsh (hShop) now what I'm trying to do is decrypt it in C# and already place it into your games, also when you decrypt it instead of ".cia" it becomes ".3ds" I can already do this for 3DS development software *which I'm working on Toolbox, 3DSPal's CIA Downloader but on the 3DS*
 

lone_wolf323

Well-Known Member
Member
Joined
May 27, 2011
Messages
5,607
Trophies
2
XP
5,265
Country
Canada
Real Nintendo CIA's (from the eShop) are encrypted, so to load it up to your 3DS normally, you need to decrypt the CIA file, using FBI or hsh (hShop) now what I'm trying to do is decrypt it in C# and already place it into your games, also when you decrypt it instead of ".cia" it becomes ".3ds" I can already do this for 3DS development software *which I'm working on Toolbox, 3DSPal's CIA Downloader but on the 3DS*
Are you sure you understand the 3ds console correctly? Why exactly would we need to decrypt the .cia files when FBI uses them without problems to install the games they are for?
 

ndsboy87

Member
OP
Newcomer
Joined
Dec 2, 2023
Messages
16
Trophies
0
XP
41
Country
United States
I'm also curious why you're using C# as opposed to C/C++ when DevKitPro is C/C++.
This is an EXE, so I'm using C#, It downloads CIA's to the "cias" folder so you can decrypt the CIAs with a 3ds homebrew app of your choice.
Post automatically merged:

I'm also curious why you're using C# as opposed to C/C++ when DevKitPro is C/C++.
Oh and, the other post was for my homebrew app.
 

botik

Well-Known Member
Member
Joined
Sep 22, 2017
Messages
147
Trophies
0
XP
2,436
Country
Russia
Eshop content have AES Cipher Block Chaining (CBC) encrypt (Need Decrypt Ttitlekey) + AES Counter mode (CTR) encrypt + CryptoSeed. .I have a script for python3 for full decrypt .cia and .3ds
 
  • Like
Reactions: anotherthing

ndsboy87

Member
OP
Newcomer
Joined
Dec 2, 2023
Messages
16
Trophies
0
XP
41
Country
United States
Eshop content have AES Cipher Block Chaining (CBC) encrypt (Need Decrypt Ttitlekey) + AES Counter mode (CTR) encrypt + CryptoSeed. .I have a script for python3 for full decrypt .cia and .3ds
I believe you can run python code with arguments in C#, but how does your program work?
 

botik

Well-Known Member
Member
Joined
Sep 22, 2017
Messages
147
Trophies
0
XP
2,436
Country
Russia
Python version need install with pycryptodome package
CIA encrypt (eshop) ---> CIA decrypt
3DS encrypt (cartridge)---> 3DS decrypt
 

cearp

瓜老外
Developer
Joined
May 26, 2008
Messages
8,825
Trophies
2
XP
8,941
Country
Tuvalu
I believe you can run python code with arguments in C#, but how does your program work?
If you want to do this properly you will port / implement it in C#, and not just call python code from your application.
Take a look at botik's implementation if and when you can, or here's something I found in just a few minutes via searching online
https://github.com/shijimasoft/cia-unix/blob/main/decrypt.py
At least you won't have to start from scratch! Good luck
Post automatically merged:

I think ihaveamac(?) made a tool that can take a cia / 3ds contents and place it on the sd card, encrypted to the specific console. Are you trying to do something like that?
 
Last edited by cearp,

ndsboy87

Member
OP
Newcomer
Joined
Dec 2, 2023
Messages
16
Trophies
0
XP
41
Country
United States
If you want to do this properly you will port / implement it in C#, and not just call python code from your application.
Take a look at botik's implementation if and when you can, or here's something I found in just a few minutes via searching online
https://github.com/shijimasoft/cia-unix/blob/main/decrypt.py
At least you won't have to start from scratch! Good luck
Post automatically merged:

I think ihaveamac(?) made a tool that can take a cia / 3ds contents and place it on the sd card, encrypted to the specific console. Are you trying to do something like that?
YES, EXACTLY! If your talking about directly placing the titles so on boot it will be there, yes thats exactly what I need!
 

Kwyjor

Well-Known Member
Member
Joined
May 23, 2018
Messages
4,727
Trophies
1
XP
4,831
Country
Canada
This is an EXE, so I'm using C#
Surely you realize you can make a .exe with Python or pretty much any other programming language..?

YES, EXACTLY! If your talking about directly placing the titles so on boot it will be there, yes thats exactly what I need!
There's no such thing. If you're thinking of something like custom-install, then even after you copy the encrypted data to the card, you still need to run faketik (or "custom-install-finalize"). It won't be there "on boot".
 
Last edited by Kwyjor,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: I was framed