1、 wireshark --------------- 数据包 抓取工具
有linux版本 && window版本 ,可以截取想要编号的数据包
file -> export specified packets 导出一条数据流。
2、tcpdump ------------------linux 命令行 抓包工具
如:
tcpdump -i eth0 host 192.168.2.1 -w lcf.pcap
含义: 《通过网卡eth0 抓取 ip 192.168.2.1 的数据包 并将其 保存为 lcf.pcap》
3、tcpreplay -------------------数据包回放指令
如:
tcpreplay -i eth3 -M 600 -l 1 t500.pcap
含义: 通过 网卡eth3 , 以600M/s 的速率, 循环一次回放 数据包 t500.pcap 里面的 数据,-l 0 表示循环播放
(当然 你可以在某些网站下载一些数据包播放器)
有时候特殊 比如要发一个 很大的数据包 这个时候需要使用 PF_RING的用户态程序pfsend进行发包
pfsend & large pcap files | |
Bittwiste的官方开源地址:bittwist.sourceforge.net。软件提供了三个版本,分别针对FreeBSD、Linux、Windows系统。需要在什么平台编译,下载相关的源码包即可.
示例:
将目的ip从192.168.1.3修改为10.10.10.10
# bittwiste -I in.pcap -O out.pcap -T ip -d 192.168.1.3,10.10.10.10
将一个 数据包生成多个数据包,并将所有的数据包的 192.168.2.1 改为 192.168.2.X
for((i=1;i<251;i++))
do
bittwiste -I test.pcap -O test-${i}.pcap -T ip -s 192.168.2.1,192.168.2.${i} -d 192.168.2.1,192.168.2.${i}
done
reference:
http://bittwist.sourceforge.net/
http://www.lovemytool.com/blog/2011/05/bittwiste-pcap-capture-file-editor-by-joke-snelders.html
5、 libnet
调用库函数的一些api填充里面的一些 结构体字段信息 ,以此来发送数据包 给特定ip
6、libpcap,winpcap
同样调用一些库函数api,以此来抓取特定数据包,保存成pcap文件。