【问题标题】:cheat engine - how to trace a pointer from a 6-bytes address?作弊引擎 - 如何从 6 字节地址跟踪指针?
【发布时间】:2021-04-09 04:29:20
【问题描述】:

我正在尝试使用作弊引擎和游戏学习基本编程。

到目前为止,我仍然无法掌握指针,尤其是如何跟踪它们。

大多数关于指针的教程都使用 4 字节长的地址,但我所拥有的是 6 字节长的地址。到目前为止,我未能从这个 6 字节长的地址中找到基地址。

如屏幕截图所示,R9 是偏移量,RCX 应该指向指针。 R9 保持不变,而 RCX 每次游戏重新开始时都会发生变化。我应该从这里去哪里?

【问题讨论】:

    标签: pointers cheat-engine


    【解决方案1】:

    32 位地址空间使用 32 位(4 字节)进行内存寻址,而 64 位地址空间使用 64 位(8 字节)进行内存寻址。

    在实践中,64 位远远超过所需(大于整个互联网的估计存储大小),因此系统决定使用 48 位(6 字节)来寻址它们的内存。

    由于大多数编程语言和计算机一般只支持 32 位和 64 位(不支持 48 位),因此 48 位地址存储在 64 位变量/寄存器中,最高有效字节为零(0x0000)

    因此,为了扫描指针值,您必须扫描一个 8Byte 的值(十六进制值被勾选,因为 CE 显示地址值默认为十六进制)

    【讨论】:

    • 感谢您的解释。不幸的是,CE 仍然只返回一个动态地址而不是基地址。你能分享一下我找到它的步骤吗?
    • 有些地址需要一个多级指针(指向指针的指针...),直到你到达基地址,有些指针可能根本不会指向基地址。您的问题的答案实际上取决于您的可执行文件以及内存的行为方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 2020-12-12
    • 2015-07-09
    相关资源
    最近更新 更多