[!CAUTION] 免责声明: 本指南仅供教育和研究目的。 作者不对任何意外后果负责,包括系统损坏、违反服务条款或因使用此信息而产生的法律问题。使用风险自负。
使用UE4SS查找内存指针
在本指南中,我们将使用UE4SS通过直接内存地址扫描指针,并利用给定的偏移量。
[!NOTE]
您应该已安装CheatEngine并了解基础知识。
查找实例化对象
启动游戏并连接UE4SS,启用控制台解锁器。
如果您正在寻找玩家蓝图但不知道它的名称,
可以通过执行getall character
获取所有类型为character
的对象,玩家对象通常会显示在顶部。
在本例中,是PlayerBP
。
使用UE4SS实时视图,我们可以通过搜索以下内容找到实例化对象:PersistentLevel.PlayerBP
[!TIP]
在对象名称前添加PersistentLevel.
将确保它是关卡中的实例化/生成对象。
扫描直接地址
该工具允许直接获取对象的内存地址。
- 复制对象的内存地址。
- 启动CE。
- 连接到游戏进程。
- 手动添加地址。
接下来,对此地址进行指针扫描。
确保在指针必须以特定偏移结束
中填入0
。
[!NOTE]
当地址指向一个对象时,我们希望最后的偏移为0
。
结果出来后,我们需要重新扫描以缩小结果范围。
确保您设置了:
- 只过滤掉无效指针。
- 在
必须以偏移开始
中填入值30
。 - 在
必须以偏移结束
中填入值0
。
这应该会改善我们的结果,但还远未准备就绪。
- 重新启动游戏。
- 重新将游戏进程连接到CE。
- 在UE4SS中找到实例化对象地址(如前所述)。
- 使用新地址重新扫描指针列表。
这应该会大大改善结果。
尝试按偏移量过滤,以获取最短路径。
在我的例子中,我得到了一个非常好的短内存指针;"CPPFPS-Win64-Shipping.exe" + 0x4Fe4998 + 0x30 + 0x110 + 0x0
添加偏移量
一旦我们有了内存指针,我们就可以开始使用偏移量访问实例化项目的不同变量/对象。
例如,偏移量0xFF0
将获取MaxGrenades
。
访问嵌套对象
这不仅限于变量,我们还可以进入嵌套引用
例如,CurrentWeapon
作为类型为WeaponBase
的引用保存在偏移量0x1008
处。
这将使内存指针指向当前武器实例对象。
如果我们搜索该实例化项目,我们可以访问它自己的变量和对象,例如,在这个游戏中所有武器共享的CurrentAmmoInClip
。
添加该偏移量将使内存指针直接指向该特定变量,无论关卡或游戏实例如何,都能每次都正确指向。
结果
如果我们比较最终结果,我们可以清楚地看到我们的新指针更加一致,路径更短,并且将始终显示正确的值。