【发布时间】:2020-02-24 10:33:06
【问题描述】:
我正在尝试从目标程序中获取全局变量的地址。我可以使用 PsGetProcessSectionBaseAddress 获取目标程序的基地址。
目标程序代码:
#include <iostream>
MyType myObject;
int main(){
...
}
我如何获得 myObject 的偏移量(我不知道如何使用 offsetof,因为它需要变量在其中的类型),一旦我获得偏移量,我可以将偏移量添加到基地址获取变量的地址,因为它是全局的?
【问题讨论】:
-
你不能这样做。尽你所能 - 如果可能的话,搜索
myObject的位置。或者程序必须自己告诉你myObject的地址。说在一些 ioctl 中将其传递给您的驱动程序 -
RbMm 我应该尝试将地址传递给驱动程序还是应该尝试使用共享内存?
-
我不知道这个。取决于你的任务和情况。如果你在
myObject处编写exe - 你知道它的地址 - 只需&myObject。如果这不是您的 src 代码 - 通常不可能获取内部对象的地址,如果它没有导出。不清楚这对司机来说是什么 -
两者都是我的来源。驱动程序应该使用它的地址从内存中读取 myObject,如果它的成员之一是某个值,驱动程序会做一些事情
-
如果你们两个 - 只需将
&myObject传递给驱动程序
标签: c++ windows memory windows-kernel