C/C++判断指定进程是否为x64的方法
先用OpenProcess打开目标进程,再把句柄传进去就OK了。BOOL IsWow64ProcessEx(HANDLE hProcess)
{
// 如果系统是x86的,那么进程就不可能有x64
bool isX86 = false;
#ifndef _WIN64
isX86 = GetProcAddress(GetModuleHandle(TEXT("ntdll")), "NtWow64DebuggerCall") == nullptr ? TRUE : FALSE;
#endif
if (isX86)
return FALSE;
// 进程架构未知,系统是x64的,可以利用IsWow64Process函数判断
typedef BOOL(WINAPI *ISWOW64PROCESS)(HANDLE, PBOOL);
ISWOW64PROCESS fnIsWow64Process;
BOOL isWow64 = TRUE;
fnIsWow64Process = (ISWOW64PROCESS)GetProcAddress(GetModuleHandle(TEXT("kernel32")), "IsWow64Process");
if (fnIsWow64Process != nullptr)
fnIsWow64Process(hProcess, &isWow64);
return !isWow64;
}
页:
[1]