如何在启动时屏蔽进程,使其不能被终止?(200分)

  • 主题发起人 主题发起人 飘叶
  • 开始时间 开始时间
2K/XP不需屏蔽!

98下确实要用VXD!否则无论如何都能用Ctrl_Alt_Del的!

 
如果在98下的话,你可以做一个屏蔽的程序,
然后在注册表中,把这个程序执行,
2000/XP也可类似的,
关于屏蔽的CTRL+ALT+DEL好象有这方面的资料,我看到过,但没有深看,
你可以找找
 
wql, 能具体说说吗?
 

Sorry! 以前我下载过一个Vxd,硬盘被超级解霸盗版搞费后丢了!名字叫

KernlKey.VXD,你到Google搜索看看,我原来不知道从那个网站上下的!

非常抱歉!
 
可惜找不到这个文件

下面的文章,不知是否可以,我看不懂
====================================
WINDOWS中CTRL+ALT+DEL控制的实现(DDK版)


可能大家知道一些通过WINDOWS中DLL来控制的一些方法.但我要写的是使用DDK技术来实现控制,进而涉及到一些DDK编程的一些其他技术.我使用的是MICROSOFT SOFTWARE MICROSOFT WINDOWS 2000 DRIVER DEVELOPMENT KIT工具.在使用上比以前版本的DDK好用很多,但是还有一定难度.这可能需要一些驱动编程方面的知识.

例如以下一些概念:设备,虚拟驱动程序,WINDOWS中0和3环区别等等.

所谓的驱动程序无非是一些按WINDOWS中的标准运转的程序.这就需要我们知道这些标准.

当然MICRISOFT给我们提供了一些可以让我们通过学习可以使用的软件,这些软件就是WINDOWS标准的体现.学会使用这些软件也就知道WINDOWS一些内层标准了.常用的有VTOOLS,DDK,WINDRIVERS.等.其中VTOOLS和WINDRIVERS是更VISUAL和EASY化的东东.当然越VISUAL和EASY的东西功能上可能就受限制.就是说更底层的东西是不容易看见和做到的.DDK是更加底层化的开发软件.可以说基本上满足的我们的要求.但学会使用他不容易.下面就”WINDOWS中CTRL+ALT+DEL控制的实现”为例说明一下这个东东.

实际上我们要实现”WINDOWS中CTRL+ALT+DEL控制的实现”,可以使用DDK来编写键盘底层的驱动程序(过滤驱动程序).需要的文件是由DDK中SRC提供的kbfiltr.c和kbfiltr.H主文件.其他的相应文件(和编译相关的)当然也需要.

kbfiltr.H中提供一下涵数:

1.
NTSTATUS
KbFilter_AddDevice(
IN PDRIVER_OBJECT DriverObject,
IN PDEVICE_OBJECT BusDeviceObject
);
这是增加设备涵数,主要是用来增加你自己需要的设备(可能需要和其他设备通讯)
NTSTATUS
KbFilter_CreateClose (
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
这是在设备创建和关闭时的涵数.
NTSTATUS
KbFilter_DispatchPassThrough(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
传输向下IRP的涵数
NTSTATUS
KbFilter_InternIoCtl (
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
内部IRP传输时IO控制
NTSTATUS
KbFilter_IoCtl (
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
和用户层IO控制
NTSTATUS
KbFilter_PnP (
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);

NTSTATUS
KbFilter_Power (
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);

NTSTATUS
KbFilter_InitializationRoutine(
IN PDEVICE_OBJECT DeviceObject, // InitializationContext
IN PVOID SynchFuncContext,
IN PI8042_SYNCH_READ_PORT ReadPort,
IN PI8042_SYNCH_WRITE_PORT WritePort,
OUT PBOOLEAN TurnTranslationOn
);

BOOLEAN
KbFilter_IsrHook(
PDEVICE_OBJECT DeviceObject, // IsrContext
PKEYBOARD_INPUT_DATA CurrentInput,
POUTPUT_PACKET CurrentOutput,
UCHAR StatusByte,
PUCHAR DataByte,
PBOOLEAN ContinueProcessing,
PKEYBOARD_SCAN_STATE ScanState
);

VOID
KbFilter_ServiceCallback(
IN PDEVICE_OBJECT DeviceObject,
IN PKEYBOARD_INPUT_DATA InputDataStart,
IN PKEYBOARD_INPUT_DATA InputDataEnd,
IN OUT PULONG InputDataConsumed
);

VOID
KbFilter_Unload (
IN PDRIVER_OBJECT DriverObject
);

这其中有用的就是KbFilter_ServiceCallback()涵数(针对本例子).这个涵数提供给我们在键盘传输数据时可以截获和控制的服务.参数很简单:

IN PDEVICE_OBJECT DeviceObject设备对象.

IN PKEYBOARD_INPUT_DATA InputDataStart,数据开始包.

IN PKEYBOARD_INPUT_DATA InputDataEnd,数据终止包

在InputDataStart和InputDataEnd之间就是当前键盘输入的数据.想怎么改就怎么改拉.

设计一个算法让CTRL+ALT+DEL失效.COMPLETE!!


 
后退
顶部