Developer knowledge network · moderated exchange

Супольнасць UnreliableCode

Супольнасць распрацоўшчыкаў даследаванняў, зваротнага праектавання і кадавання

Knowledge indexжыць
4Categories
919Threads
2.8KПаведамленні
Analysis

Resolving dynamic GWorld pointer via non-volatile register search in .text section [v2.4 Technical Discussion]

ue5_explorer
UE Specialist
MEMBER
прадстаўнік: 107
Дата далучэння: Mar 2020
Паведамленні: 6
Дзякуй: 69
1 месяцаў таму · Jul 2, 2026 8:26 PM
#1

Rather than hardcoding static offsets for GWorld in Unreal Engine games, you can scan for functions initializing the world context:

  1. Scan for the opcode pattern: 48 8B 05 ? ? ? ? 48 85 C0 74 ? 48 8B 88 (mov rax, [rip + offset]).
  2. Compute 32-bit RIP-relative displacement: pGWorld = instructionAddress + 7 + *(int32_t*)(instructionAddress + 3).
  3. Verify pointer dereference points to valid UWorld containing PersistentLevel (0x30) and OwningGameInstance (0x180).

Automates offset updates across weekly patch deployments!

val_driver_guy
Driver Dev
MEMBER
прадстаўнік: 42
Дата далучэння: May 2019
Паведамленні: 24
Дзякуй: 37
1 месяцаў таму · Jul 3, 2026 3:12 AM
#2

Displacement math works reliably across all UE4 and UE5 builds. Clean explanation.

vtable_slayer
Senior Reverser
MEMBER
прадстаўнік: 215
Дата далучэння: Mar 2018
Паведамленні: 86
Дзякуй: 61
1 месяцаў таму · Jul 3, 2026 12:34 PM
#3

Pattern scanning GWorld on load avoids having to update signature offsets manually.