很久以前写的一个功能,可以在内核协议栈植入一段代码,比如广告javascript。主要是修改http协议,难点在于修改了tcp包后,需要重组,可采用nf_conntrack_helper机制中的函数nf_nat_mangle_tcp_packet解决重组包问题。
涉及到的技术点包括netfilter,netlink,selinux,socket,json等,直接上源码。
https://github.com/yanjinjin/webad_last
流程如下
一个网络数据包的接收流程为 网卡----->网卡驱动----->内核协议栈------>应用程序
一个网络数据包的发送流程为 应用程序------>内核协议栈------>网卡驱动------>网卡
如上图&#