如何找到具有负偏移量的基结构地址
How to find the base structure address with negative offsets
我正在使用 CE 对旧游戏进行逆向工程。
我找到了修改单位生命值的代码,但是我找不到基地址,因为偏移量是负的。
问题是我什至不知道它是如何工作的,这对我来说听起来很傻,为什么 compiler/dev 还是要这样做?它是一种堆栈临时指针吗?有什么办法可以找到它吗? (我很确定有办法)
这很令人沮丧,因为我已经找到了 ID、HP 和其他东西的偏移量,但是基础......我通常没有问题,偏移量是正数。
我以为基地会是[esi-STRUCTURE_SIZE]
最后一项是 [esi]
或许我完全错了。
谢谢:)
负偏移量通常用于在使用多重继承时从子class 指针访问基础class 成员。编译器将知道完整的布局,而不是首先向上转换指针,直接从基 classes.
访问成员
从生成的代码中无法知道 class 实例在内存中的起始位置。然而,通常应该可以通过跟踪对负地址成员的访问来找到基指针。毕竟程序员可能创建了层次结构来访问基本成员,而不管它们是什么确切的派生类型。
我正在使用 CE 对旧游戏进行逆向工程。 我找到了修改单位生命值的代码,但是我找不到基地址,因为偏移量是负的。
问题是我什至不知道它是如何工作的,这对我来说听起来很傻,为什么 compiler/dev 还是要这样做?它是一种堆栈临时指针吗?有什么办法可以找到它吗? (我很确定有办法) 这很令人沮丧,因为我已经找到了 ID、HP 和其他东西的偏移量,但是基础......我通常没有问题,偏移量是正数。
我以为基地会是[esi-STRUCTURE_SIZE]
最后一项是 [esi]
或许我完全错了。
谢谢:)
负偏移量通常用于在使用多重继承时从子class 指针访问基础class 成员。编译器将知道完整的布局,而不是首先向上转换指针,直接从基 classes.
访问成员从生成的代码中无法知道 class 实例在内存中的起始位置。然而,通常应该可以通过跟踪对负地址成员的访问来找到基指针。毕竟程序员可能创建了层次结构来访问基本成员,而不管它们是什么确切的派生类型。