阅读:1736回复:4
有关TDI Hook的问题,为什么设置Irp->IoStatus.Informatio不起作用?
我的程序将 \device\tcpip 驱动的IRP_MJ_DEVICE_CONTROL派遣函数替换为我自己的函数MyDeviceIoControl()
在MyDeviceIoControl()函数里面先调用\device\tcpip 的原来的IRP_MJ_DEVICE_CONTROL派遣函数,再判断ControlCode是否为0x120003,如果是的话,判断输入参数,都满足的话,则将输出缓冲区(Irp->UserBuffer)修改,达到隐藏端口的目的。 可是问题是,我在将输出缓冲区修改之后,即使修改了Irp->IoStatus.Information=0 发现应用层调用NtDeviceIoControlFile(),返回的字节数目仍然为修改之前返回的正确的字节数目,而不是0,请问各位,是怎么一个回事? ![]() |
|
沙发#
发布于:2005-06-27 22:53
你在什么时候修改Irp->IoStatus.Information的?如果调用hook的DispachIoControl函数后,再修改,就已经晚了,因为可能已经调用IoCompleteRequest函数,这时候可以去改irp->UserIosb,应该可以起作用
|
|
板凳#
发布于:2005-06-27 23:52
斑竹出手就是不一样啊
实在太感谢了! ![]() |
|
地板#
发布于:2005-06-27 23:53
斑竹出手就是不一样,太感谢了!zhaock,多谢!
来长沙请你吃饭! |
|
地下室#
发布于:2005-06-28 10:00
呵呵,有你这句话,有机会去长沙,定要好好吃你一顿
|
|