在内核协议栈植入一段代码

本文介绍了如何在内核协议栈中植入代码,特别是在处理HTTP协议时,通过修改TCP包并利用nf_conntrack_helper机制的nf_nat_mangle_tcp_packet函数来重组包。涉及的技术包括netfilter、netlink、selinux、socket和json。通过在数据包接收和发送流程中加入hook,实现对网页访问路径的干预,达到修改网络数据包的目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很久以前写的一个功能,可以在内核协议栈植入一段代码,比如广告javascript。主要是修改http协议,难点在于修改了tcp包后,需要重组,可采用nf_conntrack_helper机制中的函数nf_nat_mangle_tcp_packet解决重组包问题。

涉及到的技术点包括netfilter,netlink,selinux,socket,json等,直接上源码。

https://github.com/yanjinjin/webad_last

流程如下

一个网络数据包的接收流程为 网卡----->网卡驱动----->内核协议栈------>应用程序

一个网络数据包的发送流程为 应用程序------>内核协议栈------>网卡驱动------>网卡

如上图,当浏览器访问一个链接,发送一个http的get请求包,路径为1------>2------>3

浏览器接收http响应包,路径为4------>5------>6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值