gpt4 book ai didi

c++ - 如何从 wow64 进程中检索特定内核对象的 64 位地址

转载 作者:行者123 更新时间:2023-11-30 05:45:25 24 4
gpt4 key购买 nike

是否可以从 32 位 WOW64 进程中获取内核对象的 64 位地址?

例如,我想获取具有给定 pid 的进程的 64 位内核地址。该值将是内核记录器进程事件的“UniqueProcessKey”。

我可以使用 NtDll 获取 32 位地址:

NtQuerySystemInformation

typedef struct _SYSTEM_HANDLE {
ULONG ProcessId;
BYTE ObjectTypeNumber;
BYTE Flags;
USHORT Handle;
PVOID Object;
ACCESS_MASK GrantedAccess;
} SYSTEM_HANDLE, *PSYSTEM_HANDLE;

但我需要 64 位地址。提前致谢。

最佳答案

好吧,我找到了答案。

前提是因为 wow64 是一个位于 64 位进程地址空间内的模拟器,应该可以调用 64 位版本的 Nt... 函数。事实证明你可以。有如下功能:

32-bit:                      64-bit:
NtQuerySystemInformation NtWow64GetNativeSystemInformation
NtQueryInformationProcess NtWow64QueryInformationProcess64

但是有一个问题。 NtWow64GetNativeSystemInformation 不支持 SystemHandleInformation 类,至少在 Win7 上是这样。因此我无法获得地址。

无论如何,如果您需要在 32 位 wow 进程中处理 64 位进程,由于某些依赖性而无法逃脱,那么还有一些其他线程值得研究:

如何获取GDI句柄列表

从32位进程获取64位进程的命令行字符串

关于c++ - 如何从 wow64 进程中检索特定内核对象的 64 位地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29379042/

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