You will need a 3DS running Luma CFW, as well as a computer that is capable of creating an access point or running a proxy.
It is necessary to disable Root CA Verification in order to capture all 3DS traffic. We recommend doing this with SciresM's 3DS-SSL-Patch.
For ease of use, you can download this premade code.ips
patch and place it at /luma/titles/0004013000002F02/code.ips
on your 3DS' SD card. Make sure that you've enabled Luma's game patching feature by holding down the select button while powering on your 3DS.
This patch will allow you to intercept 3DS traffic with something like Charles, Fiddler or Wireshark. However it doesn't work with webkit-based apps such as 3DS Browser, NNID Settings or Miiverse.
With the SSL patch in place, it's now possible to capture HTTP and HTTPS traffic with Charles or Fiddler. This might suffice for simple applications like Colors! 3D or Swapdoodle.
The majority of online game features (matchmaking, peer-to-peer, etc) use NEX, which needs to be captured using Wireshark.
TODO: wireshark filters, setting up an access point, using wireshark with a proxy?
If you do make any NEX captures, please also note down your console's NEX keys so that they can be decrypted.
We recommend getting this information using the Get_PID_Passwrd homebrew app developed by Pretendo. This app will dump your NEX PID and NEX password (not your NNID password!) to a file called nex-keys.txt
on your SD card root.
I need a tutorial for the Charles/Fiddler part.
How would I capture the HTTP traffic with those programs? I've never used them before.