程序是有界面显示的,谢谢。

解决方案 »

  1.   

    三线程保护
    A(主)创建 线程 B
    A(主)创建 远程线程 C 插入到Explorere.exe 或 winlogon.exe 中B监视 C ,C监视A
    自己想吧
      

  2.   

    做程服务也可以被杀死,在Win2000p Win2000server下可以保证服务不被停止任务管理器杀不掉,还有就是在服务停止后也不能被杀死的方法是创建的进程显示方式为SW_HIDE;但是用服务的方法在Win2003、Win XP下均不可行,都可以被任务管理器杀掉。线程保护方法可行,但是如果用到安全监控方面的话,有可能和系统发生冲突。但是总的来说这个方法还是不错的 三线程和远程线程插入可能有难度,利用两个进程相互监视也是可以实现的 还是自己想吧  这只是个思路 ^ _ ^
      

  3.   

    呵呵,我们以前做过。你可以在你的程序运行起来后,把任务栏隐藏,屏蔽掉ctrl+alt+del,win key,alt+tab等。这样当你的程序运行起来后,用户不能切换到另外一个程序,包括task manager,这样就没办法杀死你的exe了。关于如何屏蔽键盘,google搜索:msgina.dll winlogon...
      

  4.   

    当然如果别人在运行程序之前就把task manager打开,那就不行了。你还可以再加上上面兄弟说的,做个监护进程。同样别人如果把监护进程都给你干掉了,也是能把你的exe弄死。
      

  5.   

    我也有过做成服务的打算,但是上面有人说服务也可以被杀死。
    隐藏任务栏或者屏蔽等,好象也不可以,别人可以用别的工具杀死。
    多线程保护也想过,我觉得不可以,因为:
    主线程被杀死后,监控线程会重启动它,但是给用户的感觉是正在使用时,界面没了,然后又重新开始了。
    我考虑过hookTerminateProcess函数,这个应该可以,但是这种技术和注入什么的一样的不稳定,不好使用。
    我注意过任务管理器杀程序的过程,
    先postWM_CLOSE和WM_COMMAND(BN_CLICKED,IDCANCEL)
    如果没有响应,
    应该就用的TerminateProcess了。
    我想在程序里处理WM_CLOSE等消息,至于Ter..还没有办法。
    谁有更好的办法,谢谢。
      

  6.   

    我做了个服务程序A,A里面CreatProcess B,
    启动A,然后不管A停不停止,B怎么都杀不死!
    狂ft!
      

  7.   

    做成服务不可行,除非你的程序不需要UI界面。到于Hook TerminateProcess,只对终止进程(任务管理器的进程页)起作用,但对于结束任务不起作用,这个我也正在研究。
      

  8.   

    http://www.codeproject.com/system/preventclose.asp
      

  9.   

    老兄,这么跟你说吧,windows整个系统都可以被别人结束掉而且是强硬的结束掉,
    你想弄个不被别的进程结束掉的程序,那是不现实的!
      

  10.   

    单纯使用服务的话 还是别想了 因为我前几天才做过实验 在2003 server 和 XP下 都可以被任务管理器kill   还是想想其他方法吧 不如吧进程隐藏掉 使他不在任务管理器中出现
      

  11.   

    隐藏进程可以做到,但是结束任务是怎么回事,怎么防止呢?
    还有即使隐藏了,也有专门的工具杀pid
      

  12.   

    呵呵,ROOTKIT里的进程隐藏.
    隐藏了怎么也找不到进程,但可以有界面.http://www.rootkit.com
    里面有个fu什么的写的驱动,去看看吧.
      

  13.   

    HOOK 掉 OpenProcess 函数
    判断ID如果是自己的进程时,直接返回NULL
    这样别人就打不开我的进程,没办法取得我进程的句柄,也就不可能用TerminateProcess结束我的进程了
      

  14.   

    应用层的HOOK做过的,不稳定
    HOOK SYS需要知道HANDLE的结构,就是ZWOPENPROCESS返回值,ZWTERPR的入口值,这个结构不知道
      

  15.   

    服务也可以有UI的
    如果你只给别人一个guest权限就不会使你的服务进程被中止了
      

  16.   

    直接HOOK掉OpenProcess,并返回空指针能不能?
    据说WINDOWS的Task Manager杀进程的时候先要用这个函数打开一下,看返回的句柄是不是为空,如果
    不为空的话则用TerminateProcess来杀死这个进程