yangl
驱动牛犊
驱动牛犊
  • 注册日期2001-05-22
  • 最后登录2002-01-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2129回复:9

如何在NDIS中根据发送包来判定发送进程?

楼主#
更多 发布于:2002-01-16 12:53
在IMD中判定还是TDI 中?具体根据什么来判定那?

最新喜欢:

hunterforpighunter...
blue
驱动大牛
驱动大牛
  • 注册日期2001-04-25
  • 最后登录2010-10-15
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-01-16 20:19
好像都达不到你的要求。
Nouk
驱动中牛
驱动中牛
  • 注册日期2001-08-22
  • 最后登录2006-10-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-01-17 15:05
internal structure.
Taiwan's Driver Developer
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-01-18 09:05
internal structure.

No more information?
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
yangl
驱动牛犊
驱动牛犊
  • 注册日期2001-05-22
  • 最后登录2002-01-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-01-18 11:21
to Nouk :
能说详细一些么?谢谢
flyfox
驱动中牛
驱动中牛
  • 注册日期2001-04-05
  • 最后登录2012-08-03
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望22点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-01-18 12:04
与端口和进程的绑定有关么?
一剑西来,天外飞仙
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-01-21 08:52
问过PCAUSA,说是在TDI的OpenAddress和Connect里面得到的PID可以保证正确;而其他地方包括NDIS里面得到的PID都是不确定的。如果是这样,我很奇怪PING.exe为什么可以被zonealarm抓到,而且还可以正确的得到PID。难道ICMP是通过TDI来传输的?但我用TDIMON98没有看到PING.exe任何活动 :(
谁能搞定?
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-01-22 17:34
huyg出招三。大家都想知道哩,还在转业?
111
wondest
驱动牛犊
驱动牛犊
  • 注册日期2001-09-11
  • 最后登录2002-03-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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
  
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
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
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
游客

返回顶部