我正在尝试从全局指针获取游戏的引擎版本,但我对此相当陌生。这是我发现的一个很小的例子。
http://ampaste.net/mb42243
这是我试图得到的反汇编代码,指针(gpszVersionString)是突出显示的行(第5行)。
http://ampaste.net/m2a8f8887
因此,我需要找出的基本上是使用我找到的示例方法来获得它,我是否需要基本上签名出函数的第一部分,并找到该行的偏移量?
比如..。
内存签名- /x56/x8B/x35/x74/xD5/x29/x10/x68/x00/xA8/x38/x10,然后一个偏移量,以达到这一行?(不确定如何找到偏移量)
发布于 2010-02-26 07:51:39
您不能直接这样做。进程地址空间对于您的进程来说是完全唯一的-- 0xDEADBEEF可以在一个进程中指向"Dog“,而0xDEADBEEF可以在另一个进程中指向"Cat”。您必须进行允许您访问另一个进程的地址空间的操作系统调用,即使这样,您也必须猜测。很多时候,该位置在应用程序的每次运行时都是不同的--您通常不能预测流程的运行时布局在所有情况下都是什么。
希望这能有所帮助:)
编辑2:它看起来像是从反汇编程序中获取的地址。如果是这种情况,那么您就不能使用该地址的值--镜像可以在运行时重新建立基础,而那里的值将完全不同。尤其是在支持地址空间布局随机化的Windows的最新版本上。
https://stackoverflow.com/questions/2338505
复制相似问题