Custom Code/Reverse Engineering: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
(Created page with "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. =...") |
(add req) |
||
Line 1: | Line 1: | ||
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. |
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 == |
||
* [[NSMBU-Haxx/Setting up Ghidra|Ghidra]] set up with the NSMBU RPX loaded |
|||
* At least a basic understanding of C++ or Assembly |
|||
== Finding Constructors == |
|||
# 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. |
Revision as of 00:49, 30 March 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
Finding Constructors
- 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 (syntax: .profile [name]).
- Go to the build function address from above (Press G to load goto menu).
- Label the build function
Class::build
where Class is the name of the class you just created in the Symbol Tree. - Set the param type to
ActorBuildInfo*
and set the label tobuildInfo
. - Right click on the function that gets called inside the build function, and go to function signature.
- 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 typeActorBuildInfo*
and labelledbuildInfo
.