封面
《Windows内核级进程隐藏侦测技术》
Word格式可编辑含目录
精心整理放心阅读欢迎下载
文档信息
文档编号 文-05D9XD自定义文件编号
文档名称 Windows内核级进程隐藏侦测技术.doc
文档格式 Word *.doc 可编辑
文档字数 22839字 不统计页头页脚及版权声明等文字
作为综合其他科目 编写学士学位论文、本科毕业论文或文档适用 发表期刊、评初级职称的参考文献可作写作参考解决学术论文怎么写及格式等相关问题。
说明 文档仅供学习交流请勿商用。
Windows内核级进程隐藏侦测技术目录
1 .为什么选驱动程序
2.入口例程DriverEntry
4.派遣例程
5.驱动程序的安装
1 .调用OpeCManager()以获取一个管理器句柄
2.调用CreateService()来向系统中添加一个服务
3.调用StartService()来运行一个服务
4.调用CloseServiceHandle()来释放管理器或服. . .
1 .原理介绍:
3.对NtQuerySystemInformation返回的数据. . .
4.核心实现
1 .介绍EPROCESS块进程执行块
2.查看EPROCESS结构
3.什么是活动进程链表
4.进程枚举检测HookSSDT隐藏的进程
5.解决硬编码问题
d1a008046e460
6.删除活动进程链表实现进程隐藏
1 .什么是ETHREAD和KTHREAD块
2.线程调度
3.通过线程调度链表进行隐藏进程的检测
4.绕过内核调度链表隐藏进程
5.检测绕过内核调度链表隐藏进程
一般情况下我们是通过内核调试器得到那三条链表的内核地址然后进行. . .
1 .介绍通用Hook内核函数的方法
2.检测隐藏进程
结论
正文
论文关键字内核 拦截 活动进程链表 系统服务派遣表 线程调度链驱动程序简介
论文摘要信息对抗是目前计算机发展的一个重要的方向为了更好的防御必须去深入的了解敌人进攻的招式。信息对抗促使信息技术飞速的发展。下面我选取了信息对抗技术的中一个很小一角关于windows内核级病毒隐藏技术和反病毒侦测技术作为议题详细讨论。
1 .为什么选驱动程序
驱动程序是运行在系统信任的Ring0环境下在代码她拥有对系统任何软件和硬件的访问权限。这意味着内核驱动可以访问所有的系统资源可以读取所有的内存空间而且也被允许执行CPU的特权指令如读取CPU控制寄存器的当前值等。 论文百事通而处于用户模式下的程序如果试图从内核空间中读取一个字节或者试图执行像MOVEAXCR3这样的汇编指令都会被立即终止掉。不过这种强大的底线是驱动程序的一个很小的错误就会让整个系统崩溃。所以对隐藏和反隐藏技术来说都提供了一个极好的环境。但是又对攻击者和反查杀者提出了更高的技术要求。
2.入口例程DriverEntry
DriverEntry是内核模式驱动程序主入口点常用的名字她的作用和main WinMain 是一样的。extern"C"NTSTATUSDriverEntry(INPDRIVER_OBJECTDriverObject INPUNICODE_STRINGRegistryPath)
DriverEntry的第一个参数是一个指针指向一个刚被初始化的驱动程序对象该对象就代表你的驱动程序DriverEntry的第二个参数是设备服务键的键
名。 DriverEntry函数返回一个NTSTATUS值。 NTSTATUS实际就是一个长整型但你应该使用NTSTATUS定义该函数的返回值而不是LONG这样代码的可读性会更好。大部分内核模式支持例程都返回NTSTATUS状态代码你可以在DDK头文件中找到NTSTATUS的代码列表。
DriverEntry的作用主要就是创建设备对象建立设备对象的符号链接设置好各个类型的回调函数等。
例如extern"C"
NTSTATUS
DriverEntry(INPDRIVER_OBJECTDriverObject INPUNICODE_STRINGRegistryPath)
DriverObject->DriverUnload=DriverUnload;<--1
DriverObject->DriverExteion->AddDevice=AddDevice;
DriverObject->DrivetartIo=StartIo;
DriverObject->MajorFunction[IRP_MJ_PNP]=DispatchPnp;<--2
DriverObject->MajorFunction[IRP_MJ_POWER]=DispatchPower;
DriverObject-
>MajorFunction[IRP_MJ_SYSTEM_CONTROL]=DispatchWmi ;
在WDM中通过设置AddDevice回调函数来创建设备对象。在NT驱动中在DriverEntry例程中创建设备对象和符号链接。
例如
Rtl InitUnicodeString(&deviceNameUnicodeString deviceNameBuffer);初始化设备名字
创建设备ntStatus=IoCreateDevice(DriverObject
0
&deviceNameUnicodeString
##DeviceId
0
FALSE
&deviceObjectif(NT_SUCCESS(ntStatus)
Rtl InitUnicodeString(&deviceLinkUnicodeString deviceLinkBuffer);初始化符号链接名字
创建符号链接ntStatus=IoCreateSymbol icLink(&deviceLinkUnicodeString &deviceNameUnicodeString)if(!NT_SUCCESS(ntStatus)
IoDeleteDevice(deviceObject);如果创建符号链接失败删除设备returnntStatus;
建立符号链接的作用就是暴露一个给应用程序的接口应用程序可以通过CreateFi leAPI打开链接符号得到一个语柄和我们的驱动程序进行交互操作。
例程
虽然各个驱动程序的Unload例程不尽相同但是它大致执行下列工作释放属于驱动程序的任何硬件。
从Win32的名字空间移除符号连接名。
这个动作可以调用IoDeleteSymbol icLink来实现。
使用IoDeleteDevice移除设备对象。
释放驱动程序持有的任何缓冲池等。
VOIDDriverUnload(INPDRIVER_OBJECTpDriverObject)
PDEVICE_OBJECTpNextObj;
循环每一个驱动过程控制的设备pNextObj=pDriverObject->DeviceObject;whi le(pNextObj!=NULL)
从设备对象中取出设备Exteion
PDEVICE_EXTEIONpDevExt=(PDEVICE_EXTEION)extObj-
>DeviceExteion;
取出符号连接名
UNICODE_STRINGpLinkName=pDevExt->ustymLinkName;
IoDeleteSymbol icLink(&pLinkName);删除符号连接名
IoDeleteDevice(pNextObj);删除设备pNextObj=pNextObj->NextDevice;
4.派遣例程
Win2000的I/O请求是包驱动的当一个I/O请求开始 I/O管理器先创建一个IRP去跟踪这个请求另外它存储一个功能代码在IRP的I/O堆栈区的MajorField域中来唯一的标识请求的类型。 MajorField域是被I/O管理器用来索引驱动程序对象的MajorFunction表这个表包含一个指向一个特殊I/O请求的派遣例程的功能指针如果驱动程序不支持这个请求MajorFunction表就会指向I/O管理器函数_IopInval idDeviceRequest 该函数返回一个错误给原始的调用者。驱动程序的作者有责任提供所有的驱动程序支持的派遣例程。所有的驱动程序必须支持IRP_MJ_CREATE功能代码因为这个功能代码是用来响应Win32用户模式的CreateFi le调用如果不支持这功能代码Win32程
青云互联怎么样?青云互联美国洛杉矶cn2GIA云服务器低至19元/月起;香港安畅cn2云服务器低至19元/月起;日本cn2云主机低至35元/月起!青云互联是一家成立于2020年的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务。青云互联本站之前已经更新过很多相关文章介绍了,青云互联的机房有香港和洛杉矶,都有CN2 GIA线路、洛杉矶带高防,商家承诺试用7天,打死全额退款点击进入:青云互联...
HostKvm发布了夏季特别促销活动,针对香港国际/韩国机房VPS主机提供7折优惠码,其他机房全场8折,优惠后2GB内存套餐月付仅5.95美元起。这是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。下面分享几款香港VPS和韩国VPS的配置和价格信息。...
官方网站:点击访问青果云官方网站活动方案:—————————–活动规则—————————1、选购活动产品并下单(先不要支付)2、联系我司在线客服修改价格或领取赠送时间3、确认价格已按活动政策修改正确后,支付订单,到此产品开设成功4、本活动产品可以升级,升级所需费用按产品原价计算若发生退款,按资源实际使用情况折算为产品原价再退还剩余余额! 美国洛杉矶CN2_GIACPU内存系统盘流量宽带i...