Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用Python将数据包注入到现有的tcp连接中?_Python_Networking_Tcp_Packets - Fatal编程技术网

是否可以使用Python将数据包注入到现有的tcp连接中?

是否可以使用Python将数据包注入到现有的tcp连接中?,python,networking,tcp,packets,Python,Networking,Tcp,Packets,正如标题所说,我希望使用现有的tcp连接发送数据。上述连接已由第三方程序建立。我还没有找到太多关于这方面的信息,可以肯定地说,我根本不知道这将如何工作 操作系统是Windows。我喜欢的编程语言是python——我不喜欢使用第三方python模块,但如果它们能让我的生活更轻松,我会这样做 为了澄清一下,如果你不确定我想做什么:我想发送数据,就像它是由不同的程序发送的一样;很像的send函数 更新: 从技术上讲,我不能手动设计TCP数据包,然后告诉网络设备(或操作系统)发送该数据包吗?这不正是注入

正如标题所说,我希望使用现有的tcp连接发送数据。上述连接已由第三方程序建立。我还没有找到太多关于这方面的信息,可以肯定地说,我根本不知道这将如何工作

操作系统是Windows。我喜欢的编程语言是python——我不喜欢使用第三方python模块,但如果它们能让我的生活更轻松,我会这样做

为了澄清一下,如果你不确定我想做什么:我想发送数据,就像它是由不同的程序发送的一样;很像的send函数

更新:

从技术上讲,我不能手动设计TCP数据包,然后告诉网络设备(或操作系统)发送该数据包吗?这不正是注入式插座所做的事情吗

编辑:维基百科说,接收主机确认它接收到的数据包,这使得这一点有点困难。但是,如果在第三方程序接收到确认数据包之前,您可以丢弃该确认数据包,那么这应该是可行的。是吗?

/是非常强大的工具,用于监视数据包并将其注入实时网络接口。我已经在几个项目中使用过它们。这些工具非常适合刺激/响应低级网络协议(即DHCP、DNS等)和通过简单UDP发送的任何非状态


不幸的是,TCP层非常复杂且有状态。因此,将有意义的东西注入流将更加困难。此外,Scapy/Pcapy目前没有。

TCP会话不是多对一连接。它是一个点对点有状态协议,它跟踪已发送的数据包与另一端已接收的数据包。我不相信你能把自己注射到一个已经建立的疗程中。正如前面所指出的,你最好的选择是创建一个代理并充当中间人。这仍然不是一件小事,但却是可行的。

我想你会发现这几乎是不可能的。您的两个最佳选择是控制拥有连接的进程(将自己作为调试器连接)或从一开始就充当代理(使用中间的软件建立两个TCP连接)。充当代理是可以接受的。但是我该怎么做呢?客户端会连接到您,然后您会连接到服务器。你在两个TCP连接之间忠实地来回传递数据,除非你想进行有意的更改。是的,我知道了。我该如何编码?具体来说:如何让客户机与我连接?显然,这取决于您的“第三方程序”。我猜这个程序一定有办法指定它所连接的IP地址和端口号?在我的例子中,注入“有意义的东西”应该不难。没有大数据被传输,所以我不必乱弄序列号。最大的问题是丢弃接收主机的确认数据包。