It's their usual "lol we did it and u didnt lolololololo".This could mean so many things...
First hash of https://salthax.org/ is the sha256 of the decrypted N3DS key sector.
It's their usual "lol we did it and u didnt lolololololo".This could mean so many things...
I guess that if this is the case they didn't sleeped too much.It's their usual "lol we did it and u didnt lolololololo".
First hash of https://salthax.org/ is the sha256 of the decrypted N3DS key sector.

is this "illegal" ( ͡° ͜ʖ ͡°)Hey, I create a simple tool which generates some of the keys from the user input, could you please check its correctnes?
I don't think so, it does not directly containing any keys, it only generates them using some simple calculations . For the wii key I think it was a common way to generate them using a program.is this "illegal" ( ͡° ͜ʖ ͡°)

Hi C was better but that's just my opinion.ahhhhhhh, some good old C. that's the good stuff![]()
well, it depends on who you ask and how you generate the keys ; if it works the way i think; do you use an arbitrary set of bytes ? are your pointers to retrieve the keys unique ?I don't think so, it does not directly containing any keys, it only generates them using some simple calculations . For the wii key I think it was a common way to generate them using a program.

Might aswell add the rest but make people type 1337 instead of 42It generates C.bin, slot0x25KeyX.bin, slot0x38to0x3bKeyX.bin and slot0x39NFCNormalKey.bin, but I could add all leaked keys.

I added the source, so people could check it.well, it depends on who you ask and how you generate the keys ; if it works the way i think; do you use an arbitrary set of bytes ? are your pointers to retrieve the keys unique ?
i'll send you a cleaner method that i once used when comming up with a method to generate the keys for 9.5 N3DS firm, basicly it generates the 2k first bytes of PI (pi exists in all bases, including hexadecimal) and it pulls those keys from those bytes and a user input ; it would ask the user to answer a simple question "what is the meaning of the universe" and if the user inputs anything else, the hashes would be wrong, but the user would be warned and prompted to retry.I added the source, so people could check it.
An example would be enougth, so that I could implement it tomorow.i'll send you a cleaner method that i once used when comming up with a method to generate the keys for 9.5 N3DS firm, basicly it generates the 2k first bytes of PI (pi exists in all bases, including hexadecimal) and it pulls those keys from those bytes and a user input ; it would ask the user to answer a simple question "what is the meaning of the universe" and if the user inputs anything else, the hashes would be wrong, but the user would be warned and prompted to retry.
how this method is supperior to yours : you generate the keys using a subset of PI, by definition PI isn't copyrightable and thus any subset derivated from it isn't. thus making it a cleaner method. i'm implementing it atm, i'll post a source here once i'm done
here is my example of implementation when generating and setting up the 9.5 firm key; just feed PI[] through a generator and you'll be legal ; the keygenerator returns an integer if you give it the index in the key and the user generated offset ; you'll have to change a few things around, but this is kinda how it works in the big lines (if you need to generate hex of pi online for test, here you go : http://hexpi.sourceforge.net/webservices/index.php?s=0&n=20 change n to whatever number)An example would be enougth, so that I could implement it tomorow.
{
unsigned int KeyGenerator(int Offset, int index)
{
//under here are all 1024 first decimals of PI, unless we implement a way to compute the first 1024 hexadecimal PI decimals, it will stay as a block this way.
int PI[1024] =
{
0x24, 0x3F, 0x6A, 0x88, 0x85, 0xA3, 0x08, 0xD3, 0x13, 0x19, 0x8A, 0x2E, 0x03, 0x70, 0x73, 0x44, 0xA4, 0x09, 0x38, 0x22, 0x29, 0x9F, 0x31, 0xD0, 0x08, 0x2E, 0xFA, 0x98, 0xEC, 0x4E, 0x6C, 0x89,
0x45, 0x28, 0x21, 0xE6, 0x38, 0xD0, 0x13, 0x77, 0xBE, 0x54, 0x66, 0xCF, 0x34, 0xE9, 0x0C, 0x6C, 0xC0, 0xAC, 0x29, 0xB7, 0xC9, 0x7C, 0x50, 0xDD, 0x3F, 0x84, 0xD5, 0xB5, 0xB5, 0x47, 0x09, 0x17,
0x92, 0x16, 0xD5, 0xD9, 0x89, 0x79, 0xFB, 0x1B, 0xD1, 0x31, 0x0B, 0xA6, 0x98, 0xDF, 0xB5, 0xAC, 0x2F, 0xFD, 0x72, 0xDB, 0xD0, 0x1A, 0xDF, 0xB7, 0xB8, 0xE1, 0xAF, 0xED, 0x6A, 0x26, 0x7E, 0x96,
0xBA, 0x7C, 0x90, 0x45, 0xF1, 0x2C, 0x7F, 0x99, 0x24, 0xA1, 0x99, 0x47, 0xB3, 0x91, 0x6C, 0xF7, 0x08, 0x01, 0xF2, 0xE2, 0x85, 0x8E, 0xFC, 0x16, 0x63, 0x69, 0x20, 0xD8, 0x71, 0x57, 0x4E, 0x69,
0xA4, 0x58, 0xFE, 0xA3, 0xF4, 0x93, 0x3D, 0x7E, 0x0D, 0x95, 0x74, 0x8F, 0x72, 0x8E, 0xB6, 0x58, 0x71, 0x8B, 0xCD, 0x58, 0x82, 0x15, 0x4A, 0xEE, 0x7B, 0x54, 0xA4, 0x1D, 0xC2, 0x5A, 0x59, 0xB5,
0x9C, 0x30, 0xD5, 0x39, 0x2A, 0xF2, 0x60, 0x13, 0xC5, 0xD1, 0xB0, 0x23, 0x28, 0x60, 0x85, 0xF0, 0xCA, 0x41, 0x79, 0x18, 0xB8, 0xDB, 0x38, 0xEF, 0x8E, 0x79, 0xDC, 0xB0, 0x60, 0x3A, 0x18, 0x0E,
0x6C, 0x9E, 0x0E, 0x8B, 0xB0, 0x1E, 0x8A, 0x3E, 0xD7, 0x15, 0x77, 0xC1, 0xBD, 0x31, 0x4B, 0x27, 0x78, 0xAF, 0x2F, 0xDA, 0x55, 0x60, 0x5C, 0x60, 0xE6, 0x55, 0x25, 0xF3, 0xAA, 0x55, 0xAB, 0x94,
0x57, 0x48, 0x98, 0x62, 0x63, 0xE8, 0x14, 0x40, 0x55, 0xCA, 0x39, 0x6A, 0x2A, 0xAB, 0x10, 0xB6, 0xB4, 0xCC, 0x5C, 0x34, 0x11, 0x41, 0xE8, 0xCE, 0xA1, 0x54, 0x86, 0xAF, 0x7C, 0x72, 0xE9, 0x93,
0xB3, 0xEE, 0x14, 0x11, 0x63, 0x6F, 0xBC, 0x2A, 0x2B, 0xA9, 0xC5, 0x5D, 0x74, 0x18, 0x31, 0xF6, 0xCE, 0x5C, 0x3E, 0x16, 0x9B, 0x87, 0x93, 0x1E, 0xAF, 0xD6, 0xBA, 0x33, 0x6C, 0x24, 0xCF, 0x5C,
0x7A, 0x32, 0x53, 0x81, 0x28, 0x95, 0x86, 0x77, 0x3B, 0x8F, 0x48, 0x98, 0x6B, 0x4B, 0xB9, 0xAF, 0xC4, 0xBF, 0xE8, 0x1B, 0x66, 0x28, 0x21, 0x93, 0x61, 0xD8, 0x09, 0xCC, 0xFB, 0x21, 0xA9, 0x91,
0x48, 0x7C, 0xAC, 0x60, 0x5D, 0xEC, 0x80, 0x32, 0xEF, 0x84, 0x5D, 0x5D, 0xE9, 0x85, 0x75, 0xB1, 0xDC, 0x26, 0x23, 0x02, 0xEB, 0x65, 0x1B, 0x88, 0x23, 0x89, 0x3E, 0x81, 0xD3, 0x96, 0xAC, 0xC5,
0x0F, 0x6D, 0x6F, 0xF3, 0x83, 0xF4, 0x42, 0x39, 0x2E, 0x0B, 0x44, 0x82, 0xA4, 0x84, 0x20, 0x04, 0x69, 0xC8, 0xF0, 0x4A, 0x9E, 0x1F, 0x9B, 0x5E, 0x21, 0xC6, 0x68, 0x42, 0xF6, 0xE9, 0x6C, 0x9A,
0x67, 0x0C, 0x9C, 0x61, 0xAB, 0xD3, 0x88, 0xF0, 0x6A, 0x51, 0xA0, 0xD2, 0xD8, 0x54, 0x2F, 0x68, 0x96, 0x0F, 0xA7, 0x28, 0xAB, 0x51, 0x33, 0xA3, 0x6E, 0xEF, 0x0B, 0x6C, 0x13, 0x7A, 0x3B, 0xE4,
0xBA, 0x3B, 0xF0, 0x50, 0x7E, 0xFB, 0x2A, 0x98, 0xA1, 0xF1, 0x65, 0x1D, 0x39, 0xAF, 0x01, 0x76, 0x66, 0xCA, 0x59, 0x3E, 0x82, 0x43, 0x0E, 0x88, 0x8C, 0xEE, 0x86, 0x19, 0x45, 0x6F, 0x9F, 0xB4,
0x7D, 0x84, 0xA5, 0xC3, 0x3B, 0x8B, 0x5E, 0xBE, 0xE0, 0x6F, 0x75, 0xD8, 0x85, 0xC1, 0x20, 0x73, 0x40, 0x1A, 0x44, 0x9F, 0x56, 0xC1, 0x6A, 0xA6, 0x4E, 0xD3, 0xAA, 0x62, 0x36, 0x3F, 0x77, 0x06,
0x1B, 0xFE, 0xDF, 0x72, 0x42, 0x9B, 0x02, 0x3D, 0x37, 0xD0, 0xD7, 0x24, 0xD0, 0x0A, 0x12, 0x48, 0xDB, 0x0F, 0xEA, 0xD3, 0x49, 0xF1, 0xC0, 0x9B, 0x07, 0x53, 0x72, 0xC9, 0x80, 0x99, 0x1B, 0x7B,
0x25, 0xD4, 0x79, 0xD8, 0xF6, 0xE8, 0xDE, 0xF7, 0xE3, 0xFE, 0x50, 0x1A, 0xB6, 0x79, 0x4C, 0x3B, 0x97, 0x6C, 0xE0, 0xBD, 0x04, 0xC0, 0x06, 0xBA, 0xC1, 0xA9, 0x4F, 0xB6, 0x40, 0x9F, 0x60, 0xC4,
0x5E, 0x5C, 0x9E, 0xC2, 0x19, 0x6A, 0x24, 0x63, 0x68, 0xFB, 0x6F, 0xAF, 0x3E, 0x6C, 0x53, 0xB5, 0x13, 0x39, 0xB2, 0xEB, 0x3B, 0x52, 0xEC, 0x6F, 0x6D, 0xFC, 0x51, 0x1F, 0x9B, 0x30, 0x95, 0x2C,
0xCC, 0x81, 0x45, 0x44, 0xAF, 0x5E, 0xBD, 0x09, 0xBE, 0xE3, 0xD0, 0x04, 0xDE, 0x33, 0x4A, 0xFD, 0x66, 0x0F, 0x28, 0x07, 0x19, 0x2E, 0x4B, 0xB3, 0xC0, 0xCB, 0xA8, 0x57, 0x45, 0xC8, 0x74, 0x0F,
0xD2, 0x0B, 0x5F, 0x39, 0xB9, 0xD3, 0xFB, 0xDB, 0x55, 0x79, 0xC0, 0xBD, 0x1A, 0x60, 0x32, 0x0A, 0xD6, 0xA1, 0x00, 0xC6, 0x40, 0x2C, 0x72, 0x79, 0x67, 0x9F, 0x25, 0xFE, 0xFB, 0x1F, 0xA3, 0xCC,
0x8E, 0xA5, 0xE9, 0xF8, 0xDB, 0x32, 0x22, 0xF8, 0x3C, 0x75, 0x16, 0xDF, 0xFD, 0x61, 0x6B, 0x15, 0x2F, 0x50, 0x1E, 0xC8, 0xAD, 0x05, 0x52, 0xAB, 0x32, 0x3D, 0xB5, 0xFA, 0xFD, 0x23, 0x87, 0x60,
0x53, 0x31, 0x7B, 0x48, 0x3E, 0x00, 0xDF, 0x82, 0x9E, 0x5C, 0x57, 0xBB, 0xCA, 0x6F, 0x8C, 0xA0, 0x1A, 0x87, 0x56, 0x2E, 0xDF, 0x17, 0x69, 0xDB, 0xD5, 0x42, 0xA8, 0xF6, 0x28, 0x7E, 0xFF, 0xC3,
0xAC, 0x67, 0x32, 0xC6, 0x8C, 0x4F, 0x55, 0x73, 0x69, 0x5B, 0x27, 0xB0, 0xBB, 0xCA, 0x58, 0xC8, 0xE1, 0xFF, 0xA3, 0x5D, 0xB8, 0xF0, 0x11, 0xA0, 0x10, 0xFA, 0x3D, 0x98, 0xFD, 0x21, 0x83, 0xB8,
0x4A, 0xFC, 0xB5, 0x6C, 0x2D, 0xD1, 0xD3, 0x5B, 0x9A, 0x53, 0xE4, 0x79, 0xB6, 0xF8, 0x45, 0x65, 0xD2, 0x8E, 0x49, 0xBC, 0x4B, 0xFB, 0x97, 0x90, 0xE1, 0xDD, 0xF2, 0xDA, 0xA4, 0xCB, 0x7E, 0x33,
0x62, 0xFB, 0x13, 0x41, 0xCE, 0xE4, 0xC6, 0xE8, 0xEF, 0x20, 0xCA, 0xDA, 0x36, 0x77, 0x4C, 0x01, 0xD0, 0x7E, 0x9E, 0xFE, 0x2B, 0xF1, 0x1F, 0xB4, 0x95, 0xDB, 0xDA, 0x4D, 0xAE, 0x90, 0x91, 0x98,
0xEA, 0xAD, 0x8E, 0x71, 0x6B, 0x93, 0xD5, 0xA0, 0xD0, 0x8E, 0xD1, 0xD0, 0xAF, 0xC7, 0x25, 0xE0, 0x8E, 0x3C, 0x5B, 0x2F, 0x8E, 0x75, 0x94, 0xB7, 0x8F, 0xF6, 0xE2, 0xFB, 0xF2, 0x12, 0x2B, 0x64,
0x88, 0x88, 0xB8, 0x12, 0x90, 0x0D, 0xF0, 0x1C, 0x4F, 0xAD, 0x5E, 0xA0, 0x68, 0x8F, 0xC3, 0x1C, 0xD1, 0xCF, 0xF1, 0x91, 0xB3, 0xA8, 0xC1, 0xAD, 0x2F, 0x2F, 0x22, 0x18, 0xBE, 0x0E, 0x17, 0x77,
0xEA, 0x75, 0x2D, 0xFE, 0x8B, 0x02, 0x1F, 0xA1, 0xE5, 0xA0, 0xCC, 0x0F, 0xB5, 0x6F, 0x74, 0xE8, 0x18, 0xAC, 0xF3, 0xD6, 0xCE, 0x89, 0xE2, 0x99, 0xB4, 0xA8, 0x4F, 0xE0, 0xFD, 0x13, 0xE0, 0xB7,
0x7C, 0xC4, 0x3B, 0x81, 0xD2, 0xAD, 0xA8, 0xD9, 0x16, 0x5F, 0xA2, 0x66, 0x80, 0x95, 0x77, 0x05, 0x93, 0xCC, 0x73, 0x14, 0x21, 0x1A, 0x14, 0x77, 0xE6, 0xAD, 0x20, 0x65, 0x77, 0xB5, 0xFA, 0x86,
0xC7, 0x54, 0x42, 0xF5, 0xFB, 0x9D, 0x35, 0xCF, 0xEB, 0xCD, 0xAF, 0x0C, 0x7B, 0x3E, 0x89, 0xA0, 0xD6, 0x41, 0x1B, 0xD3, 0xAE, 0x1E, 0x7E, 0x49, 0x00, 0x25, 0x0E, 0x2D, 0x20, 0x71, 0xB3, 0x5E,
0x22, 0x68, 0x00, 0xBB, 0x57, 0xB8, 0xE0, 0xAF, 0x24, 0x64, 0x36, 0x9B, 0xF0, 0x09, 0xB9, 0x1E, 0x55, 0x63, 0x91, 0x1D, 0x59, 0xDF, 0xA6, 0xAA, 0x78, 0xC1, 0x43, 0x89, 0xD9, 0x5A, 0x53, 0x7F,
0x20, 0x7D, 0x5B, 0xA2, 0x02, 0xE5, 0xB9, 0xC5, 0x83, 0x26, 0x03, 0x76, 0x62, 0x95, 0xCF, 0xA9, 0x11, 0xC8, 0x19, 0x68, 0x4E, 0x73, 0x4A, 0x41, 0xB3, 0x47, 0x2D, 0xCA, 0x7B, 0x14, 0xA9, 0x4A,
};
int pointer[16] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; //redacted because posted online
return (pointer[index]+Offset < 0) ? PI[0]:PI[pointer[index]+Offset] ;
}
// @breif Initialize N3DS keys
void KeyInit(void* source)
{
int i;
int UserInput = 42; //proper function to be implemented, question to the user will be "What is the meaning of life?"
uint8_t firm_key[16] = { 0 };
uint8_t * _source = (uint8_t*)source;
for (i = 0; i<16; i++)
{
firm_key[i] = _source[i] ^ KeyGenerator(UserInput,i);
}
setup_aeskeyX(0x16, firm_key);
}
this is literally exactly as illegal as distributing straight keys just btw~here is my example of implementation when generating and setuping the 9.5 firm key; just feed PI[] through a generator and you'll be legal ; the keygenerator returns an integer if you give it the offset in the key and the user generated index ; you'll have to change a few things around, but this is kinda how it works in the big lines (if you need to generate hex of pi online for test, here you go : http://hexpi.sourceforge.net/webservices/index.php?s=0&n=20 change n to whatever number)
in which way ? i'm curious about how this is as illegal ?this is literally exactly as illegal as distributing straight keys just btw~
Instructing a user on how to modify some data (i.e. 'enter this number and click this button') or telling them where to look to find copyrighted information ('x position in this irrational number') is still disseminating copyrighted information. Digital copyright law is as arbitrary as these numbers can be, but it doesn't mean they aren't protected in all of these cases.in which way ? i'm curious about how this is as illegal ?
ok, let's have some fun, shall we :Instructing a user on how to modify some data (i.e. 'enter this number and click this button') or telling them where to look to find copyrighted information ('x position in this irrational number') is still disseminating copyrighted information. Digital copyright law is as arbitrary as these numbers can be, but it doesn't mean they aren't protected in all of these cases.
People tried to do this with Wii keys in the past and promptly got all their tools DMCA'd.
as you can see, the the last part of the article, it is stated that it it illegal to remove or alter any electronic rights managment information without authority....this sounds awfully simillar to what parental control is supposed to do, doesn't it, to manage the rights, and your tool allows users to remove the right managment information without any authority control. would be a problem if you were to get in trouble with DMCA laws, because you know, you live in the USA.Article 12 of the WCT provides in relevant part:
Contracting Parties shall provide adequate and effective legal remedies against any person knowingly performing any of the following acts knowing, or with respect to civil remedies having reasonable grounds to know, that it will induce, enable, facilitate or conceal an infringement of any right covered by this Treaty or the Berne Conventioni) to remove or alter any electronic rights management information without authority;
GBATemp is prompt to comply to DMCA requests...ok, let's have some fun, shall we :
first of all, you are talking about the Digital Millennium Copyright Act. (yes, Digital Copyright law, according to google at the very least, is another term for the DMCA), which you should know is only valid in the USA (page one of the DMCA text "U.S. Copyright Office Summary" this means that it is an USA national law, not valid world-wide), this forum being hosted in france (http://whois.domaintools.com/gbatemp.net) and one of it's administrators being from south england and the other one from an unknown location, makes this board hosting this content perfectly legal (at least from your stand point and the legal text you cited).
then, this program would only be illegal to USA users according to you, then i'll just decline any consequences that may occure from downloading and executing the tool if the user is currently living in the USA.
Also, i'd be very interested to know about where you got your criterion in the first sentence, not that i don't trust you, simply that one shouldn't believe everything one sees on the internet without any proof of any kind, for all I know, you may have totally made up those criterions.
And also, just to inform you, from your views on what constitutes Illegal content or not, your webservice for unlocking the parental control (https://mkey.salthax.org/) is also VERY illegal ; let me show you article 12 I of the DMCA (you can find more details here, if you feel so inclined, page 6)
as you can see, the the last part of the article, it is stated that it it illegal to remove or alter any electronic rights managment information without authority....this sounds awfully simillar to what parental control is supposed to do, doesn't it, to manage the rights, and your tool allows users to remove the right managment information without any authority control. would be a problem if you were to get in trouble with DMCA laws, because you know, you live in the USA.
this may be true, but the fact is that the DMCA requests are without any legal back up, as the website, for all we know is hosted and handled outside of the USAGBATemp is prompt to comply to DMCA requests...
lolthis may be true, but the fact is that the DMCA requests are without any legal back up, as the website, for all we know is hosted and handled outside of the USA