我已经截获IP包 但是怎么知道他是发到哪个应用程序的?(高分相送)(200分)

  • 主题发起人 主题发起人 panxiaosen
  • 开始时间 开始时间
P

panxiaosen

Unregistered / Unconfirmed
GUEST, unregistred user!
我已经截获IP包 但是怎么知道他是发到哪个应用程序?
或者说 我已经知道一个应用程序的名称,怎样知道他开了哪个端口
 
在ip包头信息中
 
好象是知道不了。
网卡接收到包后,通知系统,告诉系统是从哪个端口收到数据的,
系统根据程序端口判断是哪个程序去接收数据,然后送消息到程序,
把缓冲数据地址告诉程序,由程序处理接收到的数据。
感觉上好象可以似的,不过知道的东西太少了。
 
to darkiss
IP头中没有这个字段啊
 
同意yhaochuan,我觉得从IP包中是得不到这个信息的。只能根据端口判断。
 
能不能从系统消息入手?
钩入系统相关消息,然后找到那那个程序的进程,然后再找到这个程序。
不过这个程序有可能是没有介面的,比如系统的139等端口,是做为服务用的,
而QQ之类的程序有介面。
 
yhaochuan
谢谢你 能讲详细点吗 我可以再加分
 
maybe
getcurrentprocessId()->getmodulebasename()
 
IP包头里只有IP地址和上一层协议的代号,以及数据包的长度,没有端口号的!!!。
如果要知道给哪一个程序要从IP协议的上一层协议去分析。比如UDP协议,那么端口地址
就在UDP数据包头的第二个字(第16位开始)上。TCP也一样。
 
还有,yhaochuan说的接收流程也是错的,如果你看过协议,就会很清楚,根本不是那么一回事的
 
可是我关心的是你如何接获IP数据包的!能告诉我吗?
MY E-MAIL:COOLGO168@SINA.COM
 
多人接受答案了。
 
后退
顶部