Custom Code/Reverse Engineering: Difference between revisions

From Zenith
Jump to navigation Jump to search
Content added Content deleted
m (Jhmaster2000 moved page NSMBU-Haxx/Reverse Engineering to Custom Code/Reverse Engineering: un-NSMBUHaxxify general custom code pages)
Line 9: Line 9:


# Create a class from the Symbol Tree menu and name it the same as the target class name.
# Create a class from the Symbol Tree menu and name it the same as the target class name.
# Check the build function for your desired profile from the discord bot in the [https://discord.gg/PXM34tKQNj Zenith server] (syntax: .profile [name]).
# Check the build function for your desired profile from the Discord bot in the [https://discord.gg/PXM34tKQNj Zenith server] (syntax: -searchprofile [name]).
# Go to the build function address from above (Press G to load goto menu).
# Go to the build function address from above (Press G to load goto menu).
# Label the build function <code>Class::build</code> where Class is the name of the class you just created in the Symbol Tree.
# Label the build function <code>Class::build</code> where Class is the name of the class you just created in the Symbol Tree.
Line 15: Line 15:
# Right click on the function that gets called inside the build function, and go to function signature.
# Right click on the function that gets called inside the build function, and go to function signature.
# Label it <code>Class::Class</code>, set the calling convention to <code>__thiscall</code> (make sure to remove the extra param if it creates one here), and set param 2 to be of type <code>ActorBuildInfo*</code> and labelled <code>buildInfo</code>.
# Label it <code>Class::Class</code>, set the calling convention to <code>__thiscall</code> (make sure to remove the extra param if it creates one here), and set param 2 to be of type <code>ActorBuildInfo*</code> and labelled <code>buildInfo</code>.

[[Category:Guides]]

Revision as of 04:14, 28 September 2021

This page is dedicated to guides on reverse engineering the game, to find helpful information about the internals and to assist in creating ASM patches for low level hacks.

Requirements

  • Ghidra set up with the NSMBU RPX loaded
  • At least a basic understanding of C++ or Assembly

Locating Actor Constructors

  1. Create a class from the Symbol Tree menu and name it the same as the target class name.
  2. Check the build function for your desired profile from the Discord bot in the Zenith server (syntax: -searchprofile [name]).
  3. Go to the build function address from above (Press G to load goto menu).
  4. Label the build function Class::build where Class is the name of the class you just created in the Symbol Tree.
  5. Set the param type to ActorBuildInfo* and set the label to buildInfo.
  6. Right click on the function that gets called inside the build function, and go to function signature.
  7. Label it Class::Class, set the calling convention to __thiscall (make sure to remove the extra param if it creates one here), and set param 2 to be of type ActorBuildInfo* and labelled buildInfo.