码迷,mamicode.com
首页 > 系统相关 > 详细

判断指定进程是否为x64的方法(在ntdll判断某个x64函数是否存在)

时间:2016-03-14 23:05:30      阅读:461      评论:0      收藏:0      [点我收藏+]

标签:

[cpp] view plain copy
 
 技术分享技术分享
  1. BOOL IsWow64ProcessEx(HANDLE hProcess)  
  2. {  
  3.     // 如果系统是x86的,那么进程就不可能有x64  
  4.     bool isX86 = false;  
  5. #ifndef _WIN64  
  6.     isX86 = GetProcAddress(GetModuleHandle(TEXT("ntdll")), "NtWow64DebuggerCall") == nullptr ? TRUE : FALSE;  
  7. #endif  
  8.     if (isX86)  
  9.         return FALSE;  
  10.   
  11.     // 进程架构未知,系统是x64的,可以利用IsWow64Process函数判断  
  12.     typedef BOOL(WINAPI *ISWOW64PROCESS)(HANDLE, PBOOL);  
  13.     ISWOW64PROCESS fnIsWow64Process;  
  14.     BOOL isWow64 = TRUE;  
  15.     fnIsWow64Process = (ISWOW64PROCESS)GetProcAddress(GetModuleHandle(TEXT("kernel32")), "IsWow64Process");  
  16.     if (fnIsWow64Process != nullptr)  
  17.         fnIsWow64Process(hProcess, &isWow64);  
  18.     return !isWow64;  
  19. }  

 

先用OpenProcess打开目标进程,再把句柄传进去就OK了。

http://blog.csdn.net/aqtata/article/details/18361209

判断指定进程是否为x64的方法(在ntdll判断某个x64函数是否存在)

标签:

原文地址:http://www.cnblogs.com/findumars/p/5277576.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!