Ubuntu下使用libcap抓包的实现

 时间:2024-11-20 23:09:58

传统的抓包工具存在一定的缺陷,不能够根据自己的需求进行改动。这里将分享如何在Ubuntu系统下调用libcap实现抓包。

工具/原料

安装Ubuntu系统的虚拟机一台,联网

一、安装libcap

1、编译安装m4-1.4.17,下载m4-latest.tar.gz(),解压。这个是编译flex必备的环境,否则会提示“GNU M4 1.4 is required”的错误。找到该解压文件,使用命令cd m4-1.4.17进入,在该文件夹下依次执行命令进行编译安装:./configure,sudo make,sudo make install.

2、下载flex。没有fle垓矗梅吒x,直接安装libpcap会提示“Your operating system's lex is insuffici髫潋啜缅ent to compile libpcap”错误。同样的方法安装flex。找到解压后的文件夹,使用命令cd flex-2.5.37进入,在该文件夹下依次执行命令:./configure,sudo make,sudo make install.

Ubuntu下使用libcap抓包的实现

3、安装bison。在安港粕登漪装flex后直接安装libpcap会提示“don't have both flex and bison;reverting to lex/yacc”错误,前面安装的是flex,就需要搭配bison。与上面同样的方法安装。./configure,sudo make,sudo make install.

Ubuntu下使用libcap抓包的实现

4、安装libcap。官网下载libcap,解压后,进入解压文件夹,执行:./configure,sudo make,sudo make install.

Ubuntu下使用libcap抓包的实现

二、编写代码,调用libcap的接口进行抓包

1、编写代码test.c,调用libcap的接口进行抓包,text.c头文件:#include <stdio.h>#include <pcap.h>#include <stdlib.h>#include <time.h>代码如图所示。

Ubuntu下使用libcap抓包的实现

2、编译sniffex.c文件。命令:gcc -g -Wall -o sniff sniffex.c -lpcap(将文件sniffex.c编译后取名为sniff。)编译成功后若直接运行:sudo ./sniff,则出现图中的错误提示。

Ubuntu下使用libcap抓包的实现

3、问题解决:执行下一步的ln进行链接。找到libcap:命令为sudowhereislibpcap

Ubuntu下使用libcap抓包的实现

4、执行命令(该命令把libcap目录中的pcap文件夹到 /usr/include 下。并且到 /usr/lib/ 把libpcap.so.1.1.1文件 重命名为:libpcap.so.1)。

Ubuntu下使用libcap抓包的实现

5、然后执行:sudo./test,进行抓包。test是.c文件编译后的可执行文件。保存抓包到file.txt中:sudo ./sniff eth0 >file.txt,同样,sniff是.c文件编译后的可执行文件。若要将抓到的包保存到一个.txt文件中,使用命令:sudo ./sniff eth0 >file.txt

  • Python编程:怎么使用datetime类型的专属格式化
  • 飞利浦HSB4383/93家庭影院使用说明书:[1]
  • 怎样制作 手机apk应用 ?
  • 怎样手动清除电脑explorer.exe病毒
  • 学西点哪个学校比较好
  • 热门搜索
    蓝牙耳机怎么连接手机 香囊的做法 家常菜的做法大全家常炒菜 麦芽糖的做法 咸蛋的做法 鼻塞怎么快速通气 甲亢是怎么引起的 鲷怎么读 年糕做法 丝瓜的做法大全