首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用c++从内存地址获取ptr

使用c++从内存地址获取ptr
EN

Stack Overflow用户
提问于 2010-02-26 07:47:07
回答 1查看 341关注 0票数 2

我正在尝试从全局指针获取游戏的引擎版本,但我对此相当陌生。这是我发现的一个很小的例子。

http://ampaste.net/mb42243

这是我试图得到的反汇编代码,指针(gpszVersionString)是突出显示的行(第5行)。

http://ampaste.net/m2a8f8887

因此,我需要找出的基本上是使用我找到的示例方法来获得它,我是否需要基本上签名出函数的第一部分,并找到该行的偏移量?

比如..。

内存签名- /x56/x8B/x35/x74/xD5/x29/x10/x68/x00/xA8/x38/x10,然后一个偏移量,以达到这一行?(不确定如何找到偏移量)

EN

回答 1

Stack Overflow用户

发布于 2010-02-26 07:51:39

您不能直接这样做。进程地址空间对于您的进程来说是完全唯一的-- 0xDEADBEEF可以在一个进程中指向"Dog“,而0xDEADBEEF可以在另一个进程中指向"Cat”。您必须进行允许您访问另一个进程的地址空间的操作系统调用,即使这样,您也必须猜测。很多时候,该位置在应用程序的每次运行时都是不同的--您通常不能预测流程的运行时布局在所有情况下都是什么。

希望这能有所帮助:)

编辑2:它看起来像是从反汇编程序中获取的地址。如果是这种情况,那么您就不能使用该地址的值--镜像可以在运行时重新建立基础,而那里的值将完全不同。尤其是在支持地址空间布局随机化的Windows的最新版本上。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2338505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档