用VC写的程序如何设置才能不被人物管理器强制关掉。是设置优先级吗?
请赐教!

解决方案 »

  1.   

    优先级没用的,我倒是有个办法。任务管理器中关闭程序调用的是TerminateProcess。而TerminateProcess最终调用了NtQueueApcThread,然而NtQueueApcThread会判断线程是否有SystemThread标志。你可以给进程中所有线程加上这个标识就可以不被杀了。还用就是Inline或者SSDT Hook TerminateProcess或者OpenProcess。楼主想写木马还是Rootkit啥的?以上的实现都要使用驱动,建议楼主打好基础在来吧。
      

  2.   

    有一个无聊的办法,你写一个进程监控程序,当发现taskmgr.exe这个进程启动时就用TerminateProcess将taskmgr.exe强制给关了,这样,别人根本没机会去用任务管理器去关闭你的进程了。
      

  3.   

    也可以hook掉所有结束进程的函数,很多安全软件就是这么做的
      

  4.   

    呵呵,如果cmd下用tasklist一样可以杀进程啊~
      

  5.   

    勾住系统中每一个进程中可能调用的(不管是之前存在的进程,后来在你的程序运行之后出现的新的进程)openprocess,判断open的进程ID是不是你的进程ID,如果是就让openprocess返回NULL,这样那些进程就不能使用terminateprocess来关闭你的进程了,详细看windows核心编程关于DLL的某一章(忘了,好像24章吧?),实现起来有点难
      

  6.   


    这样太麻烦。稳定性不好。SSDT比较稳定
      

  7.   

    ring3下就HOOK OPENPROCESS了。
      

  8.   

    将你的进程命名为winlogon.exe  就干不掉了
      

  9.   

    HOOK OPENPROCESS 是正解,本人实现过。