阅读:2163回复:11
NDIS IMD驱动中如何知道 通信包 属于哪一个进程(线程)的?
请教各位大虾:
NDIS IMD驱动中如何知道 通信包 属于哪一个进程(线程)的? 谢谢 小虾米! [编辑 - 10/9/03 by leeyuejun] |
|
最新喜欢:hunter...
|
沙发#
发布于:2003-10-11 17:28
运行在任意进程上下文中:)
|
|
|
板凳#
发布于:2003-10-13 12:40
请教各位大虾: 关注! |
|
地板#
发布于:2003-10-13 15:08
运行在任意进程上下文中:) 请大虾说详细一点好么,不是很明白! 谢谢! |
|
|
地下室#
发布于:2003-10-13 21:05
那应该是在驱动的层次上。在数据联接层上,以上的五个层之下。是微软自己定义的一个层次。所以和应用程序进程没关系。只属于自己的驱动程序进程。他处理所有上下层所有数据,不做区分。应用程序进程是由socket在imd上层封装好的,属于session层。不过你可以由tcp或者udp的端口数据段上区分和进程的关系
|
|
|
5楼#
发布于:2003-10-14 15:47
我看到防火墙如 ZoneAlarm 可以列举出
有程序如ping.exe 想访问网络,你是否允许,此时是不是没有 应用的端口,枚举应用层的网络端口不是就看不到是谁想访问网络了? 作为使用了NDIS IMD的防火墙,该如何解决? |
|
|
6楼#
发布于:2003-10-14 16:02
我看到防火墙如 ZoneAlarm 可以列举出 这个不是在imd里面解决的,是在tdi里面。 |
|
|
7楼#
发布于:2003-10-14 16:07
im层防火墙我看只是针对网络数据包的。直接处理包就可以了。用来做对于应用程序透明的驱动防火墙倒是很合适,如果你想限制应用程序访问网络就直接用hook。希望大家多给些好的意见。还有如果是ping那就很容易确定了,icmp包吗,呵呵。
|
|
|
8楼#
发布于:2003-10-14 19:35
im层防火墙我看只是针对网络数据包的。直接处理包就可以了。用来做对于应用程序透明的驱动防火墙倒是很合适,如果你想限制应用程序访问网络就直接用hook。希望大家多给些好的意见。还有如果是ping那就很容易确定了,icmp包吗,呵呵。没有听懂你在说些什么,透明的驱动防火墙是什么意思?想限制使用网络就要HOOK,这又是什么逻辑?在IMD中确实可以使用PsGetCurrentProcess()拿到一个进程,但是这个进程和协议驱动中的进程已经没有任何的上下文关系了,因此你自己都不知道你拿到的是什么,所以也就不能使用了! |
|
|
9楼#
发布于:2003-10-15 09:30
不还是不能区分进程吗。我是我不能区分进程。透明没啥特别的意思,就是用户可以什么也不用管,什么也不需要自己配制了,呵。。说的好像太理想化了
|
|
|
10楼#
发布于:2003-10-15 11:27
应该做个TDI Filter,可能比较合适。
|
|
|
11楼#
发布于:2003-10-15 16:00
在应用层可以做,用psapi + iphlpapi,不过仅适用于xp or later.
这样可以看到哪个进程访问了哪个IP与端口。 [编辑 - 10/15/03 by lixiangying] |
|