All Projects → SabreTools → NDecrypt

SabreTools / NDecrypt

Licence: other
Cartridge encrypt/decrypt

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to NDecrypt

contech
The Contech analysis framework provides the means for generating and analyzing task graphs that enable computer architects and programmers to gain a deeper understanding of parallel programs.
Stars: ✭ 43 (+95.45%)
Mutual labels:  research
awesome-aws-research
A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources for Academic Researchers new to AWS
Stars: ✭ 41 (+86.36%)
Mutual labels:  research
QuakeMigrate
A Python package for automatic earthquake detection and location using waveform migration and stacking.
Stars: ✭ 101 (+359.09%)
Mutual labels:  research
prunnable-layers-pytorch
Prunable nn layers for pytorch.
Stars: ✭ 47 (+113.64%)
Mutual labels:  research
tips-for-scientific-research
A collection of tips for scientific research
Stars: ✭ 21 (-4.55%)
Mutual labels:  research
sbpy
A Python package for small bodies research
Stars: ✭ 60 (+172.73%)
Mutual labels:  research
snp-sites
Finds SNP sites from a multi-FASTA alignment file
Stars: ✭ 182 (+727.27%)
Mutual labels:  research
omegalib
A hybrid visualization framework for desktops, large immersive displays and the web
Stars: ✭ 74 (+236.36%)
Mutual labels:  research
Paper-Notes
Paper notes in deep learning/machine learning and computer vision
Stars: ✭ 37 (+68.18%)
Mutual labels:  research
boki
Boki: Stateful Serverless Computing with Shared Logs [SOSP '21]
Stars: ✭ 39 (+77.27%)
Mutual labels:  research
cryptopocket
🔐 Encrypt anything, then Decrypt by providing a required key.
Stars: ✭ 22 (+0%)
Mutual labels:  encryption-decryption
seviz
SEViz (Symbolic Execution VisualIZer) is a tool for visualizing symbolic execution-based test generation
Stars: ✭ 20 (-9.09%)
Mutual labels:  research
EstimNetDirected
Equilibrium Expectation for ERGM parameter estimation for large directed networks
Stars: ✭ 18 (-18.18%)
Mutual labels:  research
decrypt-qq1790749886-javanet
解密 qq1790749886/javanet 文件
Stars: ✭ 19 (-13.64%)
Mutual labels:  encryption-decryption
thesis
MSc thesis on: Classifying brain activity using EEG and automated time tracking of computer use (using ActivityWatch)
Stars: ✭ 44 (+100%)
Mutual labels:  research
ethsnarks
A toolkit for viable zk-SNARKS on Ethereum, Web, Mobile and Desktop
Stars: ✭ 224 (+918.18%)
Mutual labels:  research
gubbins
Rapid phylogenetic analysis of large samples of recombinant bacterial whole genome sequences using Gubbins
Stars: ✭ 103 (+368.18%)
Mutual labels:  research
SOMns
SOMns: A Newspeak for Concurrency Research
Stars: ✭ 62 (+181.82%)
Mutual labels:  research
SeaPearl.jl
Julia hybrid constraint programming solver enhanced by a reinforcement learning driven search.
Stars: ✭ 119 (+440.91%)
Mutual labels:  research
Password-Store
Saves your password with cryptography so only you can decode it.
Stars: ✭ 15 (-31.82%)
Mutual labels:  encryption-decryption

NDecrypt

A simple tool for simple people.

What is this?

This is a code port of 3 different programs:

  • 3ds_encrypt.py
  • 3ds_decrypt.py
  • woodsec (part of wooddumper)

No really, what is this?

This tool allows you to encrypt and decrypt your personally dumped NDS and N3DS roms with minimal hassle. The only caveat right now is that you need a keys.bin file for your personally obtained encryption keys.

So how do I use this?

NDecrypt.exe <operation> [flags] <path> ...

Possible values for <operation>:
e, encrypt - Encrypt the input files
d, decrypt - Decrypt the input files

Possible values for [flags] (one or more can be used):
-c, --citra           - Enable using aes_keys.txt instead of keys.bin
-dev, --development   - Enable using development keys, if available
-f, --force           - Force operation by avoiding sanity checks
-h, --hash            - Output size and hashes to a companion file
-k, --keyfile <path>  - Path to keys.bin or aes_keys.txt

<path> can be any file or folder that contains uncompressed items.
More than one path can be specified at a time.

Note: This overwrites the input files, so make backups if you're working on your original, personal dumps.

Note: Mixed folders or inputs are also accepted, you can decrypt or encrypt multiple files, regardless of their type. This being said, you can only do encrypt OR decrypt at one time.

I feel like something is missing...

You (possibly*) are! In fact, you may be asking, "Hey, what was that keys.bin you mentioned??". I'm glad you asked. It's used only for Nintendo 3DS and New 3DS files. Since some people don't like reading code, you need the 9 16-bit keys in little endian format (most common extraction methods produce big endian, so keep that in mind). It's recommended that you fill with 0x00 if you don't have access to a particular value so it doesn't mess up the read. They need to be in the following order:

  • Hardware constant
  • KeyX0x18 / slot0x18KeyX
  • KeyX0x1B / slot0x1BKeyX
  • KeyX0x25 / slot0x25KeyX
  • KeyX0x2C / slot0x2CKeyX
  • DevKeyX0x18
  • DevKeyX0x1B
  • DevKeyX0x25
  • DevKeyX0x2C

The last 4 are only required if you use the -dev flag. Once again, don't ask for these, please. If you're missing a required key, then things won't work. Don't blame me, blame society. Or something. And yes, I'll fix this being required across the board at some point.

*If you choose to use the -c option, you can instead provide your personally filled out aes_keys.txt file in the same folder as NDecrypt and that can be used instead. Please note that if you choose to use this file, you will not be able to use the -dev flag. If you forget and happen to use them together, NDecrypt will disable that flag for you. You're welcome.

But does it work?

As much as I'd like to think that this program is entirely without flaws, numbers need to speak for themselves sometimes. Here's a list of the supported sets and their current compatibility percentages with woodsec and the Python scripts (as of 2020-12-19):

  • Nintendo DS - >99% compatible (Both encryption and decryption)
  • Nintendo DSi - 100% compatible (Both encryption and decryption)
  • Nintendo 3DS - 100% compatible (Both encryption and decryption)
  • Nintendo New 3DS - 100% compatible (Both encryption and decryption)

Please note the above numbers are based on the current, documented values. The notable exceptions to this tend to be unlicensed carts which may be dumped incorrectly or have odd information stored in their secure area.

Anything else?

I'd like to thank the developers of the original programs for doing the actual hard work to figure things out. I'd also like to thank everyone who helped to test this against the original programs and made code suggestions.

Unofficially, this is entirely, 100% FOSS, no strings attached. I keep forgetting what license that is.

Disclaimer

This program is ONLY for use with personally dumped files and keys and is not meant for enabling illegal activity. I do not condone using this program for anything other than personal use and research. If this program is used for anything other than that, I cannot be held liable for anything that happens.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].