首页 > 系统服务 > 详细

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

时间:2016-03-14 23:03:34      阅读:395      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!