阅读:2129回复:9
如何在NDIS中根据发送包来判定发送进程?
在IMD中判定还是TDI 中?具体根据什么来判定那?
|
|
最新喜欢:hunter... |
沙发#
发布于:2002-01-16 20:19
好像都达不到你的要求。
|
|
板凳#
发布于:2002-01-17 15:05
internal structure.
|
|
|
地板#
发布于:2002-01-18 09:05
internal structure. No more information? |
|
|
地下室#
发布于:2002-01-18 11:21
to Nouk :
能说详细一些么?谢谢 |
|
5楼#
发布于:2002-01-18 12:04
与端口和进程的绑定有关么?
|
|
|
6楼#
发布于:2002-01-21 08:52
问过PCAUSA,说是在TDI的OpenAddress和Connect里面得到的PID可以保证正确;而其他地方包括NDIS里面得到的PID都是不确定的。如果是这样,我很奇怪PING.exe为什么可以被zonealarm抓到,而且还可以正确的得到PID。难道ICMP是通过TDI来传输的?但我用TDIMON98没有看到PING.exe任何活动 :(
谁能搞定? |
|
|
7楼#
发布于:2002-01-22 17:34
huyg出招三。大家都想知道哩,还在转业?
|
|
|
8楼#
发布于:2002-01-24 11:00
不一定非要在TDI层才能得到正确的PID,只要在当前进程的Context下即可。在TDI层能够得到正确的PID,是因为TDI在TCP/IP协议栈的顶层,IRP不需要排队(如果TDI上没有链入其他的filter driver),因此总是在当前进程的Context环境下。 再看一看下面的情况: 为什么Ping用TdiMon截获不到,而用ZoneAlarm能截获,且能获得正确的PID。因为Ping发的是ICMP包,位于IP层,而TdiMon截获的是TDI层,当然TdiMon是截获不到的。而ZoneAlarm是在IP层截获ICMP包,发送ICMP包是发送到\\Device\\IP设备的IRP_MJ_DEVICE_CONTROL中,一般在进程的Context下,在这时即可获得正确的PID。 E-mail: chenxianguo@sina.com |
|
9楼#
发布于:2002-01-25 09:20
你说的是2k下,我想应该和我在9x下面碰到的情况差不多。
你所说的对于IMCP\"一般在进程的Context下\"的情况并不能保证,根据我做的实验的结果,有很多时候packet并不是在ping.exe的context下传输的,常常是kernel32或其他的什么程序。如果不能保证PID的正确性,防火墙程序就不能确定是否要让packet通过。 即使是在TDI层,也不是每个接口都可以得到正确的PID的,比如在send/receivedatagram里面。 真的很奇怪za是怎么得到的,是不是做了一个replacement socket dll呢?毕竟在ring3里面要得到pid还是很容易的,但这样的安全性好象差了点。 :o |
|
|