| ▲ | OsrsNeedsf2P 7 hours ago | |||||||
Dumb question about reverse engineering binaries: is there a way to only do it piecemeal? I'm eventually waiting for LLMs and harnesses to get good enough to reverse engineer BFME (old Lord of the Rings game that still has an active modding community), but it's a multi GB sized game that would have to be done in bite-sized pieces. Basically; can you reverse engineer in bite sized pieces, and recompile/customize their behavior, without needing to do it all at once? | ||||||||
| ▲ | jonhohle 7 hours ago | parent | next [-] | |||||||
Most decomp projects (that I know of) are Ship of Theseus style projects where the minimum unit is a function, give or take alignment requirements and quirks of the compiler. On the MIPS side, tools like Splat and SPIM can help identify function and even source file boundaries, generate inline ASM C files[0], and write linker scripts to build a matching binary. You can then go through and replace the ASM functions one at a time until you just have C left. 0 - for example: https://github.com/Xeeynamo/sotn-decomp/blob/master/src/boss... | ||||||||
| ||||||||
| ▲ | paavohtl 3 hours ago | parent | prev | next [-] | |||||||
Yes, quite easily. It requires some setup, but the basic idea is that you create a DLL and a simple loader program which injects it into your target process. You can then use a hooking library like MinHook to replace individual functions with your own implementations. If the target application is in C++, you can additionally do vtable hooking and replace functions even easier (though it will always be a combination of the two techniques). | ||||||||
| ▲ | charcircuit 5 hours ago | parent | prev [-] | |||||||
Have you tried? I've haven't tried anything huge but I've had LLMs decompile SNES ROMs for me. | ||||||||