阅读:1364回复:4
通过IP Filter Hook Driver怎么得端口号?50分!
大家好,我用IP Filter Hook Driver写了一个
IP包截获程序,可是我发现在IPHEADER定义里 没有端口号。。。。。那么端口号该怎么得到? 另外,我用TDI写的抓包程序也有这个问题, 希望哪位高手能赐教,谢谢! |
|
最新喜欢:![]() |
沙发#
发布于:2002-05-29 16:10
要自己分析协议啊,
如果是TCP的协议就到TCP协义结构里找到port啊。 UDP也是一样啊。 TDI里可以看一下DDK文档,里都有的。 对于TCP连接时,关注TDI_ASSOCIATE_ADDRESS 对于UDP时,关注irp_mj_create和 Irp->AssociatedIrp.SystemBuffer |
|
|
板凳#
发布于:2002-05-29 16:11
要自己分析协议啊,
如果是TCP的协议就到TCP协义结构里找到port啊。 UDP也是一样啊。 TDI里可以看一下DDK文档,里都有的。 对于TCP连接时,关注TDI_ASSOCIATE_ADDRESS 对于UDP时,关注irp_mj_create和 Irp->AssociatedIrp.SystemBuffer , 或者 TDI_QUERY_INFORMATION --》TDI_QUERY_ADDRESS_INFO |
|
|
地板#
发布于:2002-05-29 16:22
TDI_Connect里有IrpSp->Parameters 返回一个
TDI_REQUEST_KERNEL_CONNECT结构, 此结构中又包含 TDI_CONNECTION_INFORMATION,但是这个结构里也没有 端口信息。。。。。。。 |
|
地下室#
发布于:2002-05-29 17:03
TDI_Connect里有IrpSp->Parameters 返回一个 怎么没有? PTDI_REQUEST_KERNEL p; ... PTRANSPORT_ADDRESS pTransAddr = (p->RequestConnectionInfomation)->RemoteAddress; if(pTransAddr->Address[0].AddressType == TDI_ADDRESS_TYPE_IP) { PTDI_ADDRESS_IP pIPAddress = pTransAddr->Address[0].Address; pIPAddress->sin_port就是你需要的端口。 } 我可是冲着50分去的。不要让我失望。哈哈。 |
|