首先需要配置Winpcap环境,具体环境包与配置方法到家可以到这里下载:
http://download.csdn.net/detail/hit_fantasy/7187567
实现的功能:
通过协议还原(http),以及网页内容的分析(AC多模式匹配),对于网页加载使用Fin数据包等方法进行阻断。(有点像某墙。。)
流程图如下:
程序的实现过程:
首先调用Build_Ac_Automation 函数,读取文件1.txt 中的模式串建立AC自动机。
之后用pcap_findalldevs_ex 函数打开设备列表,找到可用的设备并pcap_open 函数打开。
接下来就可以抓包了:使用pcap_next_ex函数抓取局域网中的数据包。
每次抓到的包pkt_date,检查其是否为http 的数据包:如果是,则用这整个http 字符串进行AC 匹配,如果成功则将数据包中的TCP 头FIN 分节置1,添加伪首部后计算校验和,然后将这个数据包再次发送,即发送了一个FIN 包。因为一个请求(例如百度主页)会有很次tcp 会话过程,所以发送一个FIN 包能成功阻断它的加载过程。在程序里为了测试阻断是用的while(1)死循环一直发FIN包,这时候可以发现百度主页完全打