Fun Time With a UE4 Game

1 minute read

Unreal Engine is an amazingly fun engine to reverse. The structure of UObjects - the base of all other objects - and the presence of the global arrays GObjects and GNames really simplifies a lot of work. Finding just those two globals will allow you to iterate every object in the game and know their name, their class, their entire hierarchy chain, their properties - almost everything!
I believe this is exactly what the common SDK generators do, in fact. And while these SDK generators are a great tool to get a mod up and running quick, sometimes I’m in the mood to do some manual reversing. So I’ll go through and find not just the two global arrays but UWorld, UEngine, ULocalPlayer, and find the field references for APawn, AHUD, and everything else I need to build my mod. Yes, it’s slightly more work to find and update all these offsets when a new game patch comes out, but it’s fun work sometimes :)

Anyway, enough preamble: the game I chose for this mod was Remnant: From the Ashes. It’s a fun mostly-singleplayer game (there is co-op, but no competitive multiplayer afaik). I usually develop these mods as I’m mentoring people: teaching them reverse engineering, OS concepts, code injection, etc in a hands-on way. The mod covers in-game HUD drawing, name & distance & health ESP, bone ESP, rage-mode aimbot, and some player modifications. I also added in an ImGui menu because that’s something many people ask for help with.

Here’s the GitHub repo: https://github.com/kotae4/remnant-multihack-ue4
And here’s what it looks like:

Foo
Image: Name and Bone ESP, with the menu open