-
-
[求助]遇到一个有点皮的问题,有人知道什么原因吗
-
发表于:
2019-2-3 14:14
3560
-
驱动中调用 NtCreateThreadEx 内存注入DLL到某个进程,然后创建了个线程.
调用了查找窗口的API,发现ANSI和Unicode的API执行结果不一样.
CHAR aaaaa[100] = {0};
wsprintfA(aaaaa, " %02X \n %02X \n %02X \n %02X \n %02X \n",
FindWindowA("#32770", 0),
FindWindowW(L"#32770", 0),
FindWindowExW(NULL, NULL, L"#32770", NULL),
FindWindowExA(NULL, NULL, "#32770", NULL),
findgamewindow());
00
运行结果是这样的
FindWindowA FindWindowExA 正常
FindWindowW FindWindowExW 失败
findgamewindow只是普通的遍历窗口
HWND findgamewindow()
{
HWND hd = GetDesktopWindow();
hd = GetWindow(hd, GW_CHILD);
WCHAR s[200] = { 0 };
while (hd != NULL)
{
memset(s, 0, 200);
RealGetWindowClassW(hd, s, 200);
if (wcsicmp(s,L"32770")==0)
{
return hd;
}
hd = GetNextWindow(hd, GW_HWNDNEXT);
}
return NULL;
}
RealGetWindowClassW 也是Unicode接口,调用也没错,正常.就查找窗口那有问题,什么原因?
.
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课