vancaho
驱动牛犊
驱动牛犊
  • 注册日期2004-04-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分574分
  • 威望100点
  • 贡献值0点
  • 好评度56点
  • 原创分0分
  • 专家分0分
阅读:1738回复:4

有关TDI Hook的问题,为什么设置Irp->IoStatus.Informatio不起作用?

楼主#
更多 发布于:2005-06-27 22:01
  我的程序将 \device\tcpip 驱动的IRP_MJ_DEVICE_CONTROL派遣函数替换为我自己的函数MyDeviceIoControl()

在MyDeviceIoControl()函数里面先调用\device\tcpip 的原来的IRP_MJ_DEVICE_CONTROL派遣函数,再判断ControlCode是否为0x120003,如果是的话,判断输入参数,都满足的话,则将输出缓冲区(Irp->UserBuffer)修改,达到隐藏端口的目的。
可是问题是,我在将输出缓冲区修改之后,即使修改了Irp->IoStatus.Information=0
发现应用层调用NtDeviceIoControlFile(),返回的字节数目仍然为修改之前返回的正确的字节数目,而不是0,请问各位,是怎么一个回事?
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-06-27 22:53
你在什么时候修改Irp->IoStatus.Information的?如果调用hook的DispachIoControl函数后,再修改,就已经晚了,因为可能已经调用IoCompleteRequest函数,这时候可以去改irp->UserIosb,应该可以起作用
vancaho
驱动牛犊
驱动牛犊
  • 注册日期2004-04-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分574分
  • 威望100点
  • 贡献值0点
  • 好评度56点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-06-27 23:52
斑竹出手就是不一样啊
实在太感谢了!
vancaho
驱动牛犊
驱动牛犊
  • 注册日期2004-04-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分574分
  • 威望100点
  • 贡献值0点
  • 好评度56点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-06-27 23:53
斑竹出手就是不一样,太感谢了!zhaock,多谢!
来长沙请你吃饭!
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2005-06-28 10:00
呵呵,有你这句话,有机会去长沙,定要好好吃你一顿
游客

返回顶部