我正在制作SSL服务器,并且我不使用python的库,因为我想对该过程进行一些非正统的更改。因此,我不能简单地启动TCP连接,因为我需要通过握手传输加密细节,这是我无法通过套接字进行的。所以我使用scapy进行握手本身,但之后我想继续使用TCP套接字而不再通过握手过程。这可能吗?
答案 0 :(得分:1)
如果我理解你的问题,你用scapy交换了几段,现在想用它们制造一个普通的成套插座。
这是不可能的:出于所有实际目的,您的TCP无视您在数据包中发送的任何内容,并且它不会保留此TCP连接的任何状态:所有状态都在您的应用程序中。
也就是说,在Linux中有一个名为TCP_REPAIR
的东西可以让你在一个给定的状态下放置套接字。
使用此选项时,套接字将切换为特殊模式 对其执行的任何操作都不会导致任何定义 通过适当的协议动作,而是直接放置 套接字进入一种状态,其中套接字应该在最后 已成功完成的操作。
如果正确设置序列号,套接字应该"只需工作"。,
还需要恢复TCP序列号。要这样做, 引入了TCP_REPAIR_QUEUE和TCP_QUEUE_SEQ选项。
当然这一切都是针对现代Linux的;其他操作系统可能有也可能没有类似的机制。