ue4-ida寻找Gworld

关于Gworld和Uworld

在虚幻引擎(UE)中,‌GWorld‌是全局变量,指向当前激活的‌ UWorld ‌实例。UWorld代表游戏世界,是游戏的核心容器,负责管理关卡、对象生命周期、物理行为、光照渲染及逻辑执行。

GWorld的作用

GWorld通过指针直接关联到当前活跃的UWorld实例,主要用于存储和切换游戏世界的上下文。在引擎代码中,GWorld通常在初始化时被设置为新加载的游戏世界实例,并负责协调不同世界实例之间的资源管理和状态更新。

与UWorld的关系

UWorld是游戏世界的核心类,包含多个关卡、动态元素(如Actor)的管理以及物理渲染逻辑。GWorld作为全局指针,指向当前正在运行或编辑的UWorld实例,支持多世界并存(如编辑器模式下的主场景、PIE实例等)。

在ida寻找Gworld

ue的版本号为4.26.2

https://github.com/EpicGames/UnrealEngine/

dump出来的文件,函数窗口搜索

Anullobject

2

3

f5进,这里的qword_7FF62294D5E0就是Gworld

1

右上角编辑»段»重新设置基址,拿到当前基址

4

当前基址-Gworld的地址即可得到Gworld的偏移

5

从Gworld到Uworld

地址跳转​ 按 G → 输入函数地址(如截图中的 sub_7FF61EBDC840) 直接跳转到 .text 段的函数代码得到

.text:00007FF61EBDC87F 48 89 05 52 0D D7 03          mov     cs:qword_7FF62294D5D8, rax

这里的mov cs:qword_7FF62294D5E0, rax就是我们要找的Uworld

地址7FF61EBDC87F就是Uworld的偏移