gpt4 book ai didi

assembly - 如何找到具有负偏移量的基址结构地址

转载 作者:行者123 更新时间:2023-12-02 19:17:31 32 4
gpt4 key购买 nike

我正在使用 CE 对一款旧游戏进行逆向工程。我找到了修改单位HP的代码,但我找不到基址,因为偏移量是负数。

OPCODE: "mov [esi-282],ax"[1]

问题是我什至不知道这是如何工作的,这对我来说听起来很愚蠢,为什么编译器/开发人员无论如何都会这样做?它是一种堆栈临时指针吗?有什么办法可以找到吗? (我很确定有办法)这很令人沮丧,因为我已经找到了诸如 ID、HP 之类的偏移量,但是基础...我通常没有问题,偏移量是正值。

我认为底座应该是[esi-STRUCTURE_SIZE]最后一项将是 [esi]

也许我完全错了。

谢谢:)

最佳答案

当使用多重继承时,负偏移量通常用于从子类指针访问基类成员。编译器将知道完整的布局,而不是首先向上转换指针,而是直接访问基类中的成员。

从生成的代码中不可能知道类实例在内存中的起始位置。然而,通常应该可以通过跟踪对否定寻址成员的访问来找到基指针。毕竟,程序员可能创建了层次结构来访问基本成员,而不管它们到底是什么派生类型。

关于assembly - 如何找到具有负偏移量的基址结构地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35357547/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com