gpt4 book ai didi

c - 在Linux中使用原始套接字发送原始数据(PSH-ACK)

转载 作者:行者123 更新时间:2023-11-30 20:41:21 28 4
gpt4 key购买 nike

我编写了一些程序,假装建立连接,然后发送数据包;通过在 linux 和 C 语言中使用原始套接字。

幸运的是,由于连接已建立,我已经很好地实现了该程序。我现在的问题是,我不能花太多时间,通过从服务器接收 ACK 来猜测如何填充 psh-ack(数据包),并且还可以在 netcat 的输出缓冲区上看到数据...

那么,请问有人可以帮忙格式化数据包吗?我花了很多时间,给你一个完整的流量日志会很容易。

提前致谢。希望尽早提出建议...;)。

P.S:如果不清楚,我假装实现自己的用户空间 TCP 堆栈只是为了加快 TCP 网络的进程,只是为了将网络进程嵌入到非阻塞程序执行中,以及快速的网络结果集流程。

正如你们中的一些人可能知道的,Linux 盒子会自动向发送 SYN_ACK 的服务器发送应答,但 RST 连接,并且不可能通过实现 TCP 堆栈来建立连接。所以,我应该说,我正在使用名为“TCP/UDP 黑洞 DoS 预防”的 grsec 保护,它可以防止 Linux 内核向“不连贯”的网络流量发送不希望的响应。

仅此而已。

最佳答案

ip.len = tcp_data_sz + tcphdr_sz + iphdr_sz

tcp.id = id + 1
tcp.seq = same as ACK of three way handshake
tcp.ack_seq = same as ACK of three way handshake

pseudo_hdr.len = tcp_data_sz + tcphdr_sz

tcp.check = (size: psehdr + tcphdr + tcpdata) (pad with 00's until size % 2 = 0).

此链接很有用:http://www.arcesio.net/checksum/checksumTCP.html (大部分西类牙语和英语编辑)。

感谢所有 4 位观看者。

Linuxios:感谢您的精彩评论,现在我以自己的方式找到了解决方案。 (我的方法比常见的linux界面更快:)。

关于c - 在Linux中使用原始套接字发送原始数据(PSH-ACK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15637695/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com