WY.lslrt
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2009-10-27
  • 粉丝0
  • 关注0
  • 积分116分
  • 威望15点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
阅读:3369回复:14

如何获得在NDIS中间层截获得数据包的tcp/udp,和端口号?

楼主#
更多 发布于:2004-09-19 09:14
是不是先剥离ip头,获得tcp包,或udp包?
---传说中的分割线--------
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-19 10:46
查看TCP/IP协议规范
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
genaral
驱动牛犊
驱动牛犊
  • 注册日期2003-08-17
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-09-19 11:43
typedef struct _TCPHEAD
{
unsigned short usSrcPort;  // Source Port
unsigned short usDestPort; // Destination Port
unsigned long ulSerialNo;  // Number of Sequence
unsigned long ulAckNo;     // Number of aknowledge
unsigned char dataOffset;  // Pointer to data
unsigned char flags;       // Flags
unsigned short windows;    // Size of window
unsigned short checksum;   // Total checksum
unsigned short urgentPointer; // Urgent pointer
} TcpHead, *PTcpHead;

typedef struct _UdpHead
{
unsigned short SourcePort;    // Source Port
unsigned short DestinationPort; // Destination Port
unsigned short Length;   // Total length
unsigned short Checksum;     // Total checksum
} UdpHead, *PUdpHead;

取到TCP或UDP的头,然后。。。。
WY.lslrt
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2009-10-27
  • 粉丝0
  • 关注0
  • 积分116分
  • 威望15点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-09-20 09:22
谢谢楼上两位,结贴
---传说中的分割线--------
WY.lslrt
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2009-10-27
  • 粉丝0
  • 关注0
  • 积分116分
  • 威望15点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-09-20 09:27
那它先截获的的是ip包吧,是不是还有icmp包,和arp,rarp包?
---传说中的分割线--------
zxcasd
驱动牛犊
驱动牛犊
  • 注册日期2001-06-14
  • 最后登录2007-08-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-09-20 09:42
你装个sniffer软件听一把,不就什么包的结构都清楚了么!
死了都要爱......
WY.lslrt
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2009-10-27
  • 粉丝0
  • 关注0
  • 积分116分
  • 威望15点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-09-20 16:32
我现在需要做一个截获数据包的驱动而且要对其包结构进行分析
---传说中的分割线--------
blackperl
驱动牛犊
驱动牛犊
  • 注册日期2004-09-16
  • 最后登录2005-04-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-09-21 15:06
大侠,问一下,你是怎么做的呢,能不能把你地代码发过来给我看一下,谢谢了,拜托
WY.lslrt
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2009-10-27
  • 粉丝0
  • 关注0
  • 积分116分
  • 威望15点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-09-21 20:26
我还没写代码,正在设计过程中。
---传说中的分割线--------
WY.lslrt
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2009-10-27
  • 粉丝0
  • 关注0
  • 积分116分
  • 威望15点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-09-21 20:27
我不是大虾,我是菜鸟。我也是刚接触驱动开发。
---传说中的分割线--------
genaral
驱动牛犊
驱动牛犊
  • 注册日期2003-08-17
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-09-22 19:04
在Ethernet上,数据包的格式为
| Des | Src | Type | Data | Chksum |
这里Type为 0x800的是IP数据包,0x806的是ARP数据包。

如果Type是0x800的话 Data又可以是
| IP Header | IP Data |
再根据IP Header里的 Protocol来判断下面的东东~~
#define IPPROTO_IP   0   /* dummy for IP */
#define IPPROTO_ICMP 1   /* control message protocol */
#define IPPROTO_GGP  2   /* gateway^2 (deprecated) */
#define IPPROTO_TCP  6   /* tcp */
#define IPPROTO_PUP  12  /* pup */
#define IPPROTO_UDP  17  /* user datagram protocol */
#define IPPROTO_IDP  22  /* xns idp */
#define IPPROTO_ND   77  /* UNOFFICIAL net disk proto */
#define IPPROTO_RAW  255 /* raw IP packet */
#define IPPROTO_MAX  256

如果Type是0x806的时候,是ARP的结构
blackperl
驱动牛犊
驱动牛犊
  • 注册日期2004-09-16
  • 最后登录2005-04-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-09-23 10:16
那怎么截获要发送的包呢??是不是在MPSendPackets这个函数中,如果是怎么做,谢谢!
WY.lslrt
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2009-10-27
  • 粉丝0
  • 关注0
  • 积分116分
  • 威望15点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-09-24 00:12
又有一部分可以写入文档了
---传说中的分割线--------
WY.lslrt
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2009-10-27
  • 粉丝0
  • 关注0
  • 积分116分
  • 威望15点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-09-24 00:13
截获发送的数据包,应该中间层上层借口中截获。就是你说的那个函数。在中间加上你的过滤规则
---传说中的分割线--------
cococlcl
驱动牛犊
驱动牛犊
  • 注册日期2009-07-26
  • 最后登录2010-05-04
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望121点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2009-12-09 10:32
这个问题解决了嘛?我来期待一下~~~
追求正解!
游客

返回顶部