判断指定进程是否为x64的方法(在ntdll判断某个x64函数是否存在)
Posted 朝闻道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断指定进程是否为x64的方法(在ntdll判断某个x64函数是否存在)相关的知识,希望对你有一定的参考价值。
- 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;
- }
先用OpenProcess打开目标进程,再把句柄传进去就OK了。
http://blog.csdn.net/aqtata/article/details/18361209
以上是关于判断指定进程是否为x64的方法(在ntdll判断某个x64函数是否存在)的主要内容,如果未能解决你的问题,请参考以下文章