原理
在没有调试器的情况下,程序默认没有 “调试权限” 的,在默认权限下使用 OpenProcess 已 PROCESS_QUERY_LIMITED_INFORMATION 作为第一个参数是无法打开类似与 Csrss.exe 这种系统进程的。但如果程序处于被调试状态,就会被赋予一个 “调试权限”,这时 OpenProcess 就会成功。
代码示例
// Test_Console_1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <Windows.h>
#include <intrin.h>
using namespace std;

本文介绍了一种在未使用调试器的情况下,通过检查是否被赋予调试权限来判断程序是否处于被调试状态的方法。使用OpenProcess函数尝试打开Csrss.exe系统进程,若成功则表示程序正被调试。

被折叠的 条评论
为什么被折叠?



