阅读:1792回复:6
Ndis hook 自定义 ReceivePacket 就 蓝屏!为什么??
NDIS,HOOK了那个receivepacket函数,就蓝屏.为什么呢?代码如下:
hook: pOpenBlock = ((PNDIS_OPEN_BLOCK *)pProtocolBlock)[0]; m_pReceivePacket=pOpenBlock->ReceivePacketHandler; pOpenBlock->ReceivePacketHandler=MyReceivePackets; MyReceivePackets int MyReceivePackets(IN NDIS_HANDLE ProtocolBindingContext,IN PNDIS_PACKET Packet) { DbgPrint("receive packets"); return m_pReceivePacket(ProtocolBindingContext,Packet); } 我没有做任何更改,直接交回给原来的函数去处理的.不知道为什么会蓝屏?不HOOK这个函数就不会蓝屏。恳请各位赐教. |
|
沙发#
发布于:2009-11-15 17:14
Re:Ndis hook 自定义 ReceivePacket 就 蓝屏!为什么??
|
|
板凳#
发布于:2009-11-15 22:49
Re: Ndis hook 自定义 ReceivePacket 就 蓝屏!为什么??
|
|
地板#
发布于:2009-11-17 03:35
Re: Ndis hook 自定义 ReceivePacket 就 蓝屏!为什么??
|
|
地下室#
发布于:2009-11-17 21:32
错误就在这个驱动里,位置就是HOOK住的新函数
|
|
5楼#
发布于:2009-11-18 19:31
Re:Ndis hook 自定义 ReceivePacket 就 蓝屏!为什么??
|
|
6楼#
发布于:2009-11-23 16:20
没看过这种连接方法,NDIS_OPEN_BLOCK的格式虽然可以看到,但都是undocumented。如果你仅仅想拦住packet的话,filter driver或intermediate driver应该是个很好的选择。
在windbg抓住这个蓝屏后,输入!analyze -v,然后把输出贴出来,我可以帮你看看。 |
|