Rip*_*ide 5 assembly reverse-engineering cheat-engine
我使用CE对旧游戏进行逆向工程.我找到了修改单元HP的代码,但我找不到基址,因为偏移是负的.

问题是我甚至不知道它是如何工作的,这对我来说听起来很愚蠢,为什么编译器/ dev会这样做呢?它是一种堆栈临时指针吗?有没有办法找到它?(我很确定有一种方法)这是令人沮丧的,因为我发现像ID,HP和东西的偏移,但基础...我通常没有问题,抵消是积极的.
我认为基地将是一些东西[esi-STRUCTURE_SIZE]
,最后一项将是[esi]
或者也许我完全错了.
谢谢 :)
当使用多重继承时,负偏移量通常用于从子类指针访问基类成员。编译器将知道完整的布局,而不是首先向上转换指针,而是直接访问基类中的成员。
从生成的代码中不可能知道类实例在内存中的起始位置。然而,通常应该可以通过跟踪对否定寻址成员的访问来找到基指针。毕竟,程序员可能创建了层次结构来访问基本成员,而不管它们到底是什么派生类型。