学校机房,不想让学生清除管理的程序的登录界面。
也许在2000下没办法隐藏,变通的办法,哪种好?如何实现?
1.在登录以前把计算机的某些功能屏蔽掉(网络不能去掉,登录时要用),若强行杀掉进程,则系统无法使用。哪些是关键的功能,如何做?
2.用两个程序,互相检测,发现对方没了,自动运行。如何检测指定的任务是否在运行?

解决方案 »

  1.   

    瑞星杀毒软件好象就挺符合你要求的。
    退出的时候需要输入密码;强行结束任务总失败
    不过我觉得如果删掉注册表run里的键值应该管用,回去试试看:)
      

  2.   

    不是我想破,是我想防破!
    我就是放在注册表的RUN中的硬盘有保护卡
      

  3.   

    有几类方法1.线程注入关键进程(譬如winlogon.exe)。
      条件:需要有调试权限;需要DLL(VB不行,要用C/C++。用现成的也可)
      缺陷:单用VB不行
    2.多进程监视
      条件:进程中运行的必须是能够随时被中断的工作
      缺陷:编程关闭进程树能够同时将关联进程一起关闭。
    3.做成驱动程序
      条件:@#$%^&*会用DDK or Driver Studio/SofIce/C or C++。偶不行,帮不上。
      缺陷:工作量大,大材小用。
    4.在进程管理器上动手脚
      条件:只要会用基本的API即可(FindWindow+FindWindowEx+EnableWindow)
      缺陷:无法对付其他各种各样的进程管理器和程序。
    5.API钩子,拦截进程枚举的API
      条件:要预置钩子
      缺陷:影响系统全局性能,目前没人试过。
      

  4.   

    2.用两个程序,互相检测,发现对方没了,自动运行。如何检测指定的任务是否在运行?很多方法拉:
    1.用互斥体。因为互斥体只能创建一个而且程序关闭时会释放互斥体,所以可以不断尝试创建对方已创建的互斥体,如果失败说明对方正在运行,如果成功说明互斥体被销毁,对方已被关闭。2.用隐藏窗体,并把窗体名称设得怪一些。然后用FindWindow来监视。3.用OpenProcess函数。用Shell创建进程后获得ID,不断用OpenProcess获取进程句柄,失败就说明进程已关闭。
      

  5.   

    //瑞星真是强,有没有哪位高手知道原理啊,想知道。杀毒软件要做实时监控,肯定到RING0(Monitor Mode)级。什么事情不能做?!
      

  6.   

    杀毒软件要做实时监控,肯定到RING0(Monitor Mode)级。什么事情不能做?!那不是零级的有没有可能做到让任务管理器不能结束的?包括svchost.exe之类的服务程序也是0级吗?
      

  7.   

    其实很简单,
    把系统的KERNEL32.DLL改名另存,如:kn.dll
    然后用封装一个和KERNEL32.DLL接口完全相同的库放回原先的地方
    KERNEL32.DLL是超级系统进程,你在里面就可以为所欲为了,包括拦截各种系统操作
      

  8.   

    “封装一个和KERNEL32.DLL接口完全相同的库”?
    我可没这本事,我连它有什么功能都不知道。就会点VB而已。
    我的解决办法:用两个程序,互相定时扫描对方,发现对方不在运行,立即启动。
      

  9.   

    把你的程序命名為:services.exe,這樣系統就認爲它是重要進程,從而不讓禁止。呵呵,無賴不?
      

  10.   

    //其实很简单,
    //把系统的KERNEL32.DLL改名另存,如:kn.dll你认为简单,我可不认为。
    首先它通不过FPS(文件保护系统)