gpt4 book ai didi

c++ - GetModuleHandle() 无法检索由 "advapi32.dll"加载的 "notepad.exe"的句柄

转载 作者:行者123 更新时间:2023-11-28 04:35:35 26 4
gpt4 key购买 nike

<分区>

我正在尝试获取由 notepad.exe 处理的文件信息。

因此,我的程序执行以下步骤。

  1. 为notepad.exe创建进程

    CreateProcess(NULL, szCmdLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);

  2. 等到notepad.exe初始化完成

    WaitForInputIdle(pi.hProcess, 10000);

  3. 将 notepad.exe 进程附加到我的程序作为调试对象。<​​/p>

    DebugActiveProcess(dwPID)

  4. 等待来自 Debugee 的调试事件。

  5. 当我的程序接收到 CREATE_PROCESS_DEBUG_EVENT 时,执行我需要的操作。

这是我的函数有问题。

LPVOID g_pfHookingAdd = NULL;
BOOL OnCreateProcessDebugEvent(LPDEBUG_EVENT pde)
{
DWORD dwLastErr;
if (NULL == GetModuleHandleA("advapi32.dll")) // Not able to get a handle here.
{
dwLastErr = GetLastError(); // dwLastErr => 126 => (0x7E)
}
g_pfHookingAdd = GetProcAddress(GetModuleHandleA("advapi32.dll"), "IsTextUnicode");
return TRUE;
}

如您所见,我的目标是检索加载 IsTextUnicode() 函数的地址。

但是,当我调用 GetModuleHandleA("advapi32.dll") 时,我得到错误代码 126,即ERROR_MOD_NOT_FOUND

我还检查了 advapi32.dll 在 notepad.exe 执行期间加载。

谁能告诉我为什么这不起作用?

这是我的环境条件:

Windows 10 专业版 1803(操作系统内部版本 17134.165)

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