跳转至

用这个调用 __thiscall

如果你尝试调用一个作为类非静态成员的动作函数,该函数将具有 __thiscall 调用约定,意味着你需要在 ECX 寄存器上传递类实例。(你可以在第九十四页「函数调用」复习调用约定。)传递实例很简单,但你必须首先定位到类实例的指针链。

要找到指针链,你可以在动作函数上放置断点,在断点触发时从 ECX 抓取类实例值,并把该值扔进 Cheat Engine 指针扫描。然后,要调用函数,你会遍历指针链,获得实例地址,并用内联汇编设置 ECX 并实际调用函数。这个过程类似于第一百五十六页「编写 VF 表钩子」中 VF 钩子回调调用其原始对应函数的方式。