Hacking Any starting guides for reverse engineering Nintendo 3DS discontinued apps?

idkwhattoput

Active Member
OP
Newcomer
Joined
Jun 21, 2022
Messages
32
Trophies
0
Website
idkwhattoput.ct8.pl
XP
127
Country
Brazil
i got to this RE thing a few months later and i am very interested in it, one of the apps i want to do RE is Nintendo video which downloads online videos straight from nintendo i think it would be really interesting for me to download my files while im away from home (travelling), i know how to make servers in nodeJS but i still need to know how the application works to start working on this small project, i would like to know if there is any kind of application or guide that shows how reverse engineer works in 3ds, i also have debugging tools like X32DBG and IDA.
 
  • Like
Reactions: PetaHD

goodgamer78

Member
Newcomer
Joined
Feb 10, 2018
Messages
12
Trophies
0
Age
34
XP
149
Country
United States
A better option instead of reverse engineering old software would be to make a video player. In fact, one already exists, you can find it here. Not sure how you could swing downloading videos from Nintendo, though, but this would work for your own content.
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
I would generally recommend a background in the sorts of things you care to reverse engineer. Don't for instance do Nintendo's player but if there is some open source video grabber for an embedded device then figure out the general workflow and you can come at the changes more. Equally while I might care about the precise instructions, calculations and timings for a damage model in a game then here you care more about having a video work which yields two main approaches. Don't know what they would have had for an index, if it is gone then hopefully you can find some cached data on one out there (that is to say dump things before you have tried loading the program in case loading clears it, same for any video files themselves).

If it is a download and play rather than streaming (slightly different approach, though mostly means it is segmented) then check it is not a common codec underneath it all (software patents mean games are not necessarily your standard MP4 H264 AAC type affair). At that point you have basically a downloader (see wget) and player (see mplayer for something to say), maybe with a handshake to make sure it is a 3ds or whatever that it is coming from rather than a PC (though as this is video rather than something you pay for then that is less of a concern, or likely to be far weaker*).
Alternatively if it is said common codec and the main url is no longer active you could edit the program to use a different URL on a server you control. Such a thing is also a debugging approach as you get fully formed requests, hopefully in plaintext, and can puzzle out their meaning.

Likewise it is typically better to be able to watch these services in action rather than being left with one side of the equation, and inability to play around with it. If nothing else being able to fire up wireshark or something to see the general flow of packets would make sense of a lot of things you might be seeing in assembly (by the way x32dbg is a wonderful program but as far as I am aware it is for PC programs, not ARM console stuff which you will want the paid version of IDA or something else like ghidra or radare2 for. https://wrongbaud.github.io/posts/ghidra-debugger/ ). Or better yet you might have found that the 3ds downloads are broadly the same as the ones on the website, just cut down in resolution/framerate or something else and with a slightly different name.

*possibility Nintendo includes the account or some identifying console marker for metrics (who watches, who eventually buys... especially as they actually went in on the demos cost sales mindset).

Anyway most channels are themselves self contained programs (easier to update than needing to issue a firmware update, also less space for the firmware in memory if it does not have to be included) so you would probably start there. If you could make it work on an emulator then fantastic, if you have to debug on hardware or static (emulators and speaking to online services is a tricky one) then oh well still can do things just more tedious.
 
  • Like
Reactions: idkwhattoput

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: roms wont boot with wood r4menu