试论windows2003 内核级进程隐藏和侦测技术

试论windows2003 内核级进程隐藏和侦测技术

ID:25656779

大小:109.00 KB

页数:21页

时间:2018-11-21

试论windows2003 内核级进程隐藏和侦测技术_第1页
试论windows2003 内核级进程隐藏和侦测技术_第2页
试论windows2003 内核级进程隐藏和侦测技术_第3页
试论windows2003 内核级进程隐藏和侦测技术_第4页
试论windows2003 内核级进程隐藏和侦测技术_第5页
资源描述:

《试论windows2003 内核级进程隐藏和侦测技术》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、试论Windows2003内核级进程隐藏和侦测技术摘要:信息对抗是目前计算机发展的一个重要的方向,为了更好的防御,必须去深入的了解敌人进攻的招式。信息对抗促使信息技术飞速的发展。下面我选取了信息对抗技术的中一个很小一角关于ain,ain,是一样的。  extern"C"NTSTATUSDriverEntry(INPDRIVER_OBJECTDriverObject,INPUNICODE_STRINGRegistryPath)  {...}  DriverEntry的第一个参数是一个指针,指向一个刚被初始化的驱动程序对象,该对象就代表你的驱动程序,DriverE

2、ntry的第二个参数是设备服务键的键名。DriverEntry函数返回一个NTSTATUS值。NTSTATUS实际就是一个长整型,但你应该使用NTSTATUS定义该函数的返回值而不是LONG,这样代码的可读性会更好。大部分内核模式支持例程都返回NTSTATUS状态代码,你可以在DDK头文件NTSTATUS.H中找到NTSTATUS的代码列表。  DriverEntry的作用主要就是创建设备对象,建立设备对象的符号链接,设置好各个类型的回调函数等。  例如:extern"C"NTSTATUSDriverEntry(INPDRIVER_OBJECTDriverOb

3、ject,INPUNICODE_STRINGRegistryPath){DriverObject->DriverUnload=DriverUnload;<--1DriverObject->DriverExtension->AddDevice=AddDevice;DriverObject->DriverStartIo=StartIo;DriverObject->MajorFunction[IRP_MJ_PNP]=DispatchPnp;<--2DriverObject->MajorFunction[IRP_MJ_P

4、O中通过设置AddDevice回调函数来创建设备对象。在NT驱动中在DriverEntry例程中创建设备对象和符号链接。  例如:  RtlInitUnicodeString(deviceNameUnicodeString,deviceNameBuffer);//初始化设备名字//创建设备ntStatus=IoCreateDevice(DriverObject,0,deviceNameUnicodeString,##DeviceId,0,FALSE,deviceObject);if(NT_SUCCESS(ntStatus)){RtlInitUnicodeStr

5、ing(deviceLinkUnicodeString,deviceLinkBuffer);//初始化符号链接名字//创建符号链接ntStatus=IoCreateSymbolicLink(deviceLinkUnicodeString,deviceNameUnicodeString);if(!NT_SUCCESS(ntStatus)){IoDeleteDevice(deviceObject);//如果创建符号链接失败,删除设备returnntStatus;}}  建立符号链接的作用就是暴露一个给应用程序的接口,应用程序可以通过CreateFileAPI打开链

6、接符号,得到一个语柄,和我们的驱动程序进行交互操作。  3.Unload例程  虽然各个驱动程序的Unload例程不尽相同,但是它大致执行下列工作:  释放属于驱动程序的任何硬件。  从ajorField域中来唯一的标识请求的类型。MajorField域是被I/O管理器用来索引驱动程序对象的MajorFunction表,这个表包含一个指向一个特殊I/O请求的派遣例程的功能指针,如果驱动程序不支持这个请求,MajorFunction表就会指向I/O管理器函数_IopInvalidDeviceRequest,该函数返回一个错误给原始的调用者。驱动程序的有责任提供所

7、有的驱动程序支持的派遣例程。所有的驱动程序必须支持IRP_MJ_CREATE功能代码,因为这个功能代码是用来响应J_CLOSE功能代码,因为它用来响应ydrvDispatch(INPDEVICE_OBJECTDeviceObject,INPIRPIrp){NTSTATUSstatus;PIO_STACK_LOCATIONirpSp;//得到当前IRP(I/O请求包)irpSp=IoGetCurrentIrpStackLocation(Irp);sation=0L;break;caseIRP_MJ_CLOSE:DbgPrint("IRP_MJ_CLOSE")

8、;Irp->IoStatus.S

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。