我需要编辑 1 行,/proc/net/tcp
而 Linux 内核也使用该文件来更新内核的其他行。
背景:中的每一行/proc/net/tcp
代表一个 TCP 套接字。内核使用该文件来显示系统中每个套接字的状态和统计信息。我想伪造系统中 1 个套接字的统计数据,因为我正在捕获其流量并将其直接传递到网卡,而内核不知情。
答案1
/proc/net/tcp
不是可以编辑的真实文件。每次读取时,内核都会分配称为 a 的临时缓冲区序列文件,并从中写入统计数据当前的内核内数据。
您只能通过更改 in 和后续函数中的代码来劫持tcp4_seq_show()
它net/ipv4/tcp_ipv4.c
。
请注意,它/proc/net/tcp
实际上是 a 的符号链接/proc/self/net/tcp
,因此如果您将进程放入命名空间中,它根本不会看到您的连接。