Hacking ROM Hack Where to start reverse engineering 3DS games?

  • Thread starter Thread starter Manyula
  • Start date Start date
  • Views Views 1,606
  • Replies Replies 1

Manyula

New Member
Newbie
Joined
Jun 13, 2019
Messages
3
Reaction score
1
Trophies
0
Age
36
XP
126
Country
United States
I've been interested in the 3DS homebrew scene for a while, specifically around patching games with additional functionality. However, I'm lost in terms of how to start learning about reverse engineering games, for example to find the memory addresses that correlate to specific parts of the game.

Are there any resources that people could recommend for learning this? These don't have to be specific to 3DS, just generally understanding the process of reverse engineering a console game would be very helpful.
Any tools used to reverse engineer 3DS games would also be very much appreciated.

Also, sorry if this has been asked before, I couldn't find a thread on it.
 
There are multiple ways to do this. You could try using a memory scanner / cheat searcher tool that scans your entire 3DS for a specific value (like the number of your in-game money), this can be done either on hardware or on emulators. Probably doing it on emulators are easier. The idea is: scan the entire memory for a specific value you're interested in. Then, you go back to the game and try changing the value, so for money you'd try to gain / lose money, and then you go back to the memory scanner and refine the search to find addresses that used to contain the old value but now get updated. Do it over and over and you'll eventually find the memory location.

A lot of games these days don't have fixed memory location though, often referred to as "heap memory", the address changes every time you launch the game. Of course, some addresses in your game has to be fixed, for example, the start of the program must be at a fixed location every time you launch the game. Eventually, you'll find out that the so called "money", although having dynamic address, has a corresponding field at a fixed address whose value is the address of the "money". For further reading, look up "memory address pointer".

The analogy here is that you're trying to find Bob but you don't know where Bob is, but you know where Bob's house is, so you go to Bob's house and you met Steve, you ask Steve where Bob is and Steve says Bob just went to taco bell, so you go to taco bell and find Bob there.

I guess this is a very deep subject with each console having its own intricacies. I'd suggest looking the keyword "memory searcher", "reverse engineering". "address pointers", "memory stack and heap", "ASLR" just to name a few.
 

Site & Scene News

Popular threads in this forum