2010-08-05 52 views
0

我正在写一个Windows驱动程序(当然在c中,我处于内核模式),我想从外部打开一个tcp套接字第一个SYN数据包应该有的序列号。在内核模式下打开win-socket(tcp)指定序号

我试着修改包过滤它与Windows过滤平台,但它当然不起作用,因为堆栈认为正确的数字是原来的和收件人的堆栈认为正确的一个被修改之一。

我在找些类似的东西: OpenSocket(...,UINT32 seqNum,UINT16 winSize) 或任何等效的东西。

有一种方法可以做到这一点?

感谢, 马尔科

回答

0

似乎是一个奇怪的事情在做,但如果你的过滤器可以修改传入和传出的数据包,然后就可以解决两个方向上的序列号。

只需找出与原信号序列号的偏差即可。然后,您可以将其添加到传出数据包的序列号中,并将其从传入数据包的确认编号中减去。

对话的每一面都完全符合他们的期望,尽管他们对预期不一致。