给libpcap增加一个新的捕包方法
2017-01-22 15:11
197 查看
原贴:http://www.cnblogs.com/jintianfree/p/4393240.html
libpcap是一个网络数据包捕获函数库,功能非常强大,提供了系统独立的用户级别网络数据包捕获接口,Libpcap可以在绝大多数类unix 平台下工作。大多数网络监控软件都以它为基础,著名的tcpdump就是以它为基础的。tcpdump是linux下一个非常重要的网络工具,可以将网络 中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用 的信息。很多时候为了提升捕包性能,我们通常使用修改过的驱动或者专用网卡来收包,这样就导致libpcap无法工作了,但我们又需要tcpdump来进
行调试等工作。这样就需要我们修改libpcap,以支持我们的收包方式。比如pfring就是这样处理的。
这是本文在我自己搭建博客的地址 欢迎访问 http://www.itblogs.ga/blog/20150404222832/
为libpcap添加一个捕包方法非常简单,下面代码先实现捕获内存中一个固定包的功能,保证能够工作后,再去支持专有驱动或者专用网卡的收包。以下所涉及的libpcap代码和tcpdump代码,版本分别为libpcap-1.7.2,tcpdump-4.1.1。
首先添加两个文件,编写收包的代码,可以参考的代码还是挺多的,比如pcap-snoop.c、pcap-can-linux.c等。
pcap-ring.h
pcap-ring.c
修改pcap.c,支持新的收包方式。
pcap.c
修改 Makefile.in ,将新添加的文件编译进去。
接下来可以编译了:
./configure
make
可以看到libpcap.a了。
接下编译tcpdump-4.1.1
./configure
make
运行:
可以看到,tcpdump能拿到包并解析了。
libpcap是一个网络数据包捕获函数库,功能非常强大,提供了系统独立的用户级别网络数据包捕获接口,Libpcap可以在绝大多数类unix 平台下工作。大多数网络监控软件都以它为基础,著名的tcpdump就是以它为基础的。tcpdump是linux下一个非常重要的网络工具,可以将网络 中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用 的信息。很多时候为了提升捕包性能,我们通常使用修改过的驱动或者专用网卡来收包,这样就导致libpcap无法工作了,但我们又需要tcpdump来进
行调试等工作。这样就需要我们修改libpcap,以支持我们的收包方式。比如pfring就是这样处理的。
这是本文在我自己搭建博客的地址 欢迎访问 http://www.itblogs.ga/blog/20150404222832/
为libpcap添加一个捕包方法非常简单,下面代码先实现捕获内存中一个固定包的功能,保证能够工作后,再去支持专有驱动或者专用网卡的收包。以下所涉及的libpcap代码和tcpdump代码,版本分别为libpcap-1.7.2,tcpdump-4.1.1。
首先添加两个文件,编写收包的代码,可以参考的代码还是挺多的,比如pcap-snoop.c、pcap-can-linux.c等。
pcap-ring.h
pcap.c
./configure
make
可以看到libpcap.a了。
接下编译tcpdump-4.1.1
./configure
make
运行:
相关文章推荐
- 给libpcap增加一个新的捕包方法
- GridView增加一个统计行的方法
- QT4 在字符串中查找EMAIL地址(转贴增加一个处理方法)
- 请给Array本地对象增加一个原型方法,它的用途是删除数组条目中重复的条目(可能有多个),返回值是一个仅包含被删除的重复条目的新数组。
- 在C#中为DATAGRID控件增加一个删除按钮的一种方法
- ASP.NET MVC3 快速入门-第六节 增加一个追加数据的方法和一个追加数据的视图(转)
- 修改管理中的一个方法,自定义增加列提示
- 声明一个类,它具有一个方法,此方法被重载三次,派生一个新类, 并增加一个新的重载方法,编写测试类验证四个方法对于派生类都有效
- c#文件流读取编码问题(转)新增加一个方法解决不带BOM的问题
- 请给Array本地对象增加一个原型方法,它的用途是删除数组条目中重复的条目(可能有多个),返回值是一个仅包含被删除的重复条目的新数组。
- 在VB.net中为DATAGRID控件增加一个删除按钮的一种方法
- js defineSetter -给js的 "class"自动增加一个set的属性(方法)
- 最近在为界面库中增加一个单独的换肤功能,自己记录下GDI渐变色的使用方法
- Flex3 LIST 增加一个ITEM 的方法
- 一个简单的方法,增加虚拟机red hat enterprise 5下硬盘容量
- 随机增加网站点击的一个不错的方法 原创
- 增加一个基类没有的方法
- 关于程序设计中条件限制下的增加Page标签的一个方法
- (原创)利用扩展方法,给 IEnumerable<T> 增加一个生成 Html 的 select 标签的方法,不用 C# 中的反射技术
- ASP.NET MVC3 快速入门-第六节 增加一个追加数据的方法和一个追加数据的视图