gpt4 book ai didi

c - netfilter转发钩子(Hook)点修改数据包

转载 作者:行者123 更新时间:2023-11-30 17:13:25 26 4
gpt4 key购买 nike

我有两台机器A和B,B不能直接上网。 B需要通过A访问网络。

A上有两个网卡eth0和eht1。

eth0'IP为10.0.2.15,eth1的IP为192.168.56.101,B'gateway为A'eth1网卡IP。

在机器 A 上设置 iptables 策略后,B 可以访问 Internet。

现在我希望在A机器上拦截B机器的数据包,并修改数据包。我的做法如下:

  1. 三次握手后,B在浏览器中访问网站,服务器返回HTTP/1.1 200 OK,在HTML中找到title标签。
  2. 使用skb_tailroom()函数获取tailroom大小。
  3. 如果插入的内容长度小于tailroom,则调用skb_put()函数扩展skb。
  4. 在title标签后插入内容,并修改Content-Length长度。
  5. 重新计算 IP 和 TCP 校验和。

问题:机器B收到机器A发送过来的修改后的报文并丢弃,然后机器A重传修改后的报文。

我怀疑问题是由校验和计算引起的。

附注我使用相同的算法来计算校验和,直接在机器A上修改数据包,它有效。在机器A上修改了机器B的数据包,不起作用。

抱歉我的英语不好。

最佳答案

由于是 TCP,Seq# 和 Ack# 编号很重要,如果您在编辑数据包数据时不编辑 Seq# 和 Ack#,则不起作用。

关于c - netfilter转发钩子(Hook)点修改数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30862463/

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