如果没有原理调试器,则程序默认没有“调试权限”。 如果使用具有默认权限的open process process _ query _ limited _ information作为第一个参数,则无法打开类似Csrss.exe的系统进程。 但是,如果程序被调试,则会赋予“调试权限”,OpenProcess会成功。
代码示例//Test_Console_1.cpp :此文件包含' main '函数。 程序的执行在此开始并结束。 //# include iostream # include windows.h # includeintrin.husingnamespacestd; 类型ntstatus (winapi * pcsrgetprocessid ) ); int main () csrss.exe进程ID HANDLE h_csrss=NULL; psrgetprocessidcsrgetprocessid=(pcsrgetprocessid ) getprocaddress (loadlibrary (l ' ntdll.dll ',' csrgetprocessid )。 csrgetprocessid==null ) { goto main_end; 使用//process _ query _ limited _ information权限创建csrss.exeh _ csrss=open process (process _ query _ limited _ information ) endl; } else { cout中的调试器' endl; }main_end: getchar (; 返回0; }效果图vs调试:
正常启动: