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

[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. // 进程架构未知,系统是x64的,可以利用IsWow64Process函数判断
  11. typedef BOOL(WINAPI *ISWOW64PROCESS)(HANDLE, PBOOL);
  12. ISWOW64PROCESS fnIsWow64Process;
  13. BOOL isWow64 = TRUE;
  14. fnIsWow64Process = (ISWOW64PROCESS)GetProcAddress(GetModuleHandle(TEXT("kernel32")), "IsWow64Process");
  15. if (fnIsWow64Process != nullptr)
  16. fnIsWow64Process(hProcess, &isWow64);
  17. return !isWow64;
  18. }

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

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

时间: 2024-10-11 06:13:48

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

怎么实现一个:判断指定进程有无响应的功能函数. (转)

/* 怎么实现一个:判断指定进程有无响应的功能函数. 已知条件为:一个进程ID,求这个进程有无响应;用VC平台实现. 我在网络查找一些资料,copy后得出以下一个程序,但不能检测出结果,运行时会出错. 接触C++不是很长时间,希望大家能帮帮我,解决这个问题,谢谢. 如果还有其它方法,请给予提示.谢谢.  */ /////////////////////////////////////////////////////////////////////////////// #include <wind

zabbix使用自己编写脚本模板和zabbix自带模板两种方法添加对指定进程和端口的监控

zabbix使用自己编写脚本模板和zabbix自带模板两种方法添加对指定进程和端口的监控 1.自带监控模板进行os的监控 进入/usr/local/zabbix/etc/zabbix_agentd.conf 配置文件修改 LogRemoteCommands=1     ###开启脚本功能 Server=192.168.5.129     ##修改zabbix指向的服务器: 重启zabbix_agentd.zabbix_server服务 在配置-->主机-->添加主机--> 配置主机信息主

判断一个指定的Service是否存在的方法

这是一个判断一个指定的Service是否存在的方法.它被用于监视一个Service是否由于已经运转,如果由于各种原因Service已经被停止了.这是在重新启动指定Service.它被用于一个Application中有多个Service.    public static boolean isServiceExisted(Context context, String className) {        ActivityManager activityManager = (ActivityMa

[转帖]判断Linux进程在哪个CPU核运行的方法

判断Linux进程在哪个CPU核运行的方法 原文网址:http://www.embeddedlinux.org.cn/html/xinshourumen/201601/30-5013.html 问题:有一个Linux进程运行在多核处理器系统上,如何查看该进程运行在哪个CPU上? 方法一: 如果一个进程使用taskset命令明确的被固定(Pinned)到CPU的特定内核上,你可以使用taskset命令找出被固定的CPU内核: taskset -c -p <pid> 例如,如果你对PID为5357

Android 如何判断指定服务是否在运行中 &ldquo;Service&rdquo;

如何判断一个服务是否正在运行中: /** * 判断某个服务是否正在运行的方法 * * @param mContext * @param serviceName 是包名+服务的类名 * @return true代表正在运行,false代表服务没有正在运行 */ public static boolean isServiceWork(Context mContext, String serviceName) { boolean isWork = false; ActivityManager myAM

C# 如何判断指定文件是否正被其它程序使用

C# 如何判断指定文件是否正被其它程序使用 起因:项目中发现在操作文件时,系统经常抛出异常,表示文件正被其它程序占用. 需求:为了事先判断,以确认指定的文件是否正被其它程序使用,需要方法进行判断. 实现: /// <summary> /// 返回指示文件是否已被其它程序使用的布尔值 /// </summary> /// <param name="fileFullName">文件的完全限定名,例如:“C:\MyFile.txt”.</param&

Shell脚本之监视指定进程的运行状态

在之前的博客中,曾经写了自动化测试程序的实现方法,现在开发者需要知道被测试的进程(在此指运行在LINUX上的主进程的)在异常退出之前的进程的运行状态,例如内存的使用率.CPU的使用率等. 现用shell脚本实现指定进程的运行状态. 直接上代码. #!/bin/sh echo "`date`" echo "Start $0---------" echo "" #每十秒监视一下 sec=10 #取得指定进程名为mainAPP,内存的使用率,进程运行状

python通过字典dict判断指定键值是否存在

python中有两种方法可以判断指定的键值是否存在,一种是通过字典对象的方法 has_key 判断,另外一种是通过 in 方法,下面是详细的范例. 1 2 3 4 5 d={'site':'www.cnblogs.com','name':'cnblog','object':'asgdjaa'} #方法1:通过has_key print d.has_key('site') #方法2:通过in print 'body' in d.keys()

2019-11-29-dotnet-通过-WMI-获取指定进程的输入命令行

原文:2019-11-29-dotnet-通过-WMI-获取指定进程的输入命令行 title author date CreateTime categories dotnet 通过 WMI 获取指定进程的输入命令行 lindexi 2019-11-29 08:35:39 +0800 2019-02-22 10:17:37 +0800 dotnet C# WMI 本文告诉大家如何使用 WMI 通过 Process 获取这个进程传入的命令行 使用下面代码,使用 Win32_Process 拿到所有的