今天花了一天时间,研究了一下如何利用原始套接字模拟TCP的三次握手。因为前几天一直在关于linux下c语言的socket编程,也看的差不多了,今天就敲了一天的代码。但是遇到了一个问题,当我利用raw socket发送SYN报文请求连接后,也能收到对方发来的SYN+ACK报文,当我发送ACK之前,本机系统会自动发送一个RST报文。然后,我在网上搜了一下,也有人遇到我这样的情况,有人给出如下解决方法:
一、反编译内核,提取connect的信息,进行分析,看怎么记录连接信息的,自己加连接信息,我晕,不太好办。
二、做个IP报文拦截器,直接过滤掉rst报文。NND太暴了:),咱是文化人,不能用这招。
三、不让TCP层收到ACK响应,那么我们就可以拦截这个报文并且把它过滤掉,这种方案也是可行的。
四、用winpcap拦截过滤,有兴趣去官方网站下载,比较简单。
也不知道这些法子到底可不可以,这两天再看看查阅别的资料试试,或者问问老师看看。

本文介绍了作者使用原始套接字尝试模拟TCP三次握手的过程。在发送SYN并收到SYN+ACK后,系统自动发送RST报文导致连接无法建立。作者探讨了四种可能的解决方案,包括反编译内核、拦截RST报文、过滤ACK报文以及使用winpcap,并分享了实验代码。
最低0.47元/天 解锁文章
3606

被折叠的 条评论
为什么被折叠?



