网安教育培养网络安全人才技术交流、学习咨询前言搞Windows的,你应该写过协议驱动,你是否想过你写的协议驱动存放在哪里?可否遍历出?即使能在应用层的一些地方能看到协议驱动的一些信息,但是看不到协议驱动注册的函数。一些协议驱动偷偷的发送信息,一些早期的Windows版本上的WFP是拦截不到的(链路层)。IDA的简单分析协议驱动的一个关键函数NdisRegisterProtocolDriver。IDA分析这个函数发现:申请个_NDIS_PROTOCOL_BLOCK,调用ndisRegisterProtocolDriverCommon函数,把这个结构存储在ndisProtocolList链表里。1Irql = KeAcquireSpinLockRaiseToDpc(&ndisProtocolListLock);2ProtocolBlock->NextProtocol = ndisProtocolList; 3ndisProtocolList = ProtocolBlock; 4KeReleaseSpinLock(&ndisProtocolListLock, Irql);最后把这个结构的指针存储在(自己提供的)最后一个参数里。所以得出枚举协议驱动的思路:自己安
………………………………