racle
驱动牛犊
驱动牛犊
  • 注册日期2009-10-25
  • 最后登录2010-07-06
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望251点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1692回复:6

Ndis hook 自定义 ReceivePacket 就 蓝屏!为什么??

楼主#
更多 发布于:2009-11-15 06:25
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这个函数就不会蓝屏。恳请各位赐教.
racle
驱动牛犊
驱动牛犊
  • 注册日期2009-10-25
  • 最后登录2010-07-06
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望251点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-11-15 17:14
Re:Ndis hook 自定义 ReceivePacket 就 蓝屏!为什么??
racle
驱动牛犊
驱动牛犊
  • 注册日期2009-10-25
  • 最后登录2010-07-06
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望251点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-11-15 22:49
Re: Ndis hook 自定义 ReceivePacket 就 蓝屏!为什么??
racle
驱动牛犊
驱动牛犊
  • 注册日期2009-10-25
  • 最后登录2010-07-06
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望251点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-11-17 03:35
Re: Ndis hook 自定义 ReceivePacket 就 蓝屏!为什么??
racle
驱动牛犊
驱动牛犊
  • 注册日期2009-10-25
  • 最后登录2010-07-06
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望251点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-11-17 21:32
错误就在这个驱动里,位置就是HOOK住的新函数
racle
驱动牛犊
驱动牛犊
  • 注册日期2009-10-25
  • 最后登录2010-07-06
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望251点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2009-11-18 19:31
Re:Ndis hook 自定义 ReceivePacket 就 蓝屏!为什么??
drivercoding
驱动牛犊
驱动牛犊
  • 注册日期2009-10-19
  • 最后登录2013-08-17
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望191点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2009-11-23 16:20
没看过这种连接方法,NDIS_OPEN_BLOCK的格式虽然可以看到,但都是undocumented。如果你仅仅想拦住packet的话,filter driver或intermediate driver应该是个很好的选择。

在windbg抓住这个蓝屏后,输入!analyze -v,然后把输出贴出来,我可以帮你看看。
游客

返回顶部