First off, let's set some ground rules:
ANY POST ASKING A QUESTION ANSWERED IN THIS OP WILL BE REMOVED AND YOU WILL BE INFRACTED!
There's some red text above, I'd recommend everyone reads it ^
Discoveries are not originally made on this thread. They are made in the IRC channel, #projectpokemon.
There's a link above ^
This post will be updated. Be sure to check back in before posting a question! (Or just hang around on IRC)
Alright, so, let's get on with some content:
PKM/PKX/SAV Developments:
So far, the PKX format has been discovered and documented. It is the the PKM equivalent for this generation.
PokeGen has not yet been updated.
There are PKX editors, however, there is no means to get a PKX file back into the game yet.
It is possible to reliably rip PKX files out of the games though.
Wi-Fi Protocol:
The GTS was found to be encrypted using SSL. We are leaving that alone.
Wondertrades and P2P (One player to another) trades have been found to use unencrypted UDP for transfers.
UDP frames have been found to have PKX files inside of them.
Scraping UDP frames can get PKX files.
UDP frames containing PKX files occur when a Pokemon is "shown" that Pokemon while Trading.
These PKX files are encrypted with a known format. And they have a simple checksum over them. The math here has been wrong a few times, but it is becoming corrected.
The current way to get PKX files back into the game: Packet re-injection. This method has not yet been perfected (Checksum errors)
There is also a packet modification method which depends on Linux network interfaces using a computer as a pseudo-router. There has been some problems on the networking end here.
ROM:
The ROM is currently encrypted using a difficult AES key. Keys for every game appear to be different (there is likely two keys, a globally signed one, and one per-game). This information is stored inside of the 3DS somewhere. It is done before the ROM is read into RAM, so there is no hope in grabbing the keys that way.
RAM:
RAM has successfully been written to.