在本文中,您可以使用libpcap库在linux下开发自定义快照工具,同学们也可以在win下编写相同的代码。
抓住包的目的:
1、分析协议
2、伪造数据包
3、获取用户名和密码等重要信息
4、进行某种攻击后使用
抓包的工具
(1)可视化Wireshark的工具
)2) Tcpdump
命令行上的工具。
)3)自定义夹点工具
原因1:只抓住感兴趣的部分,去除无关紧要的东西,为其他目的服务。
原因2 )如果有其他目的,例如偷偷安装在其他设备上,则必须保持隐藏、短小。
箱包工具的结构原理
(1)用原始套接字捕获并解析所有数据包。
)2)使用现成的库抓包。
Libpcap库是linux下的库。 如果是windows开发,可以使用名为wincap的库。 两个函数等也一样。
欢迎来到学习小组【892643663】。 获取免费的丙/丙企业实战级课程资源(素材源视频),编译大礼包
自定义夹点工具的编程过程
)1)想抓住链路层数据包时,打开网卡设备。 (在linux下,将所有设备视为文件。 是linux的哲学之一。 )相当于从这个网卡上的文件中抓住文件的内容。
)2)设置过滤规则,只保留特定的包
)3)开始抓住包,输出感兴趣的部分
代码#include
#include//libpcap库头文件
#包含
#include//ip协议定义
#include//tcp协议定义
#包含
#包含
用//C语言写抓手工具
输入主(语音) )。
{
//1-1找到可用的网卡
pcap_if_t*pcap_if;
charerrorbuf [ pcap _ errbuf _ size ]={0};
INTR=pcap_findalldevs(pcap_if,ErrorBuf ); //查找所有网卡设备
if(r==-1 )//异常
{
printf(finddeverror(n );
返回- 1; //直接返回,不要再下降
}
printf (第一个网卡的名称为%sn )、pcap_if[0].name );
printf(2 (第二个网卡的名称为%sn )、pcap_if[1].name );
//1-2打开其网卡设备
pcap_t*handler; //用于描述打开的NIC设备对象
handler=pcap _ open _ live (pcap _ if [0].name,PCAP_BUF_SIZE,1,100,错误buf );
if(handler==null ) ) ) )。
{
printf (打开失败n );
返回- 1;
}
设置//2过滤规则,只捕获tcp的数据包
unsignedintip,掩码;
r=pcap _ lookup net (pcap _ if [0].name,ip,mask,ErrorBuf );
if(r==-1 ) () ) ) ) ) ) ) ) )。
{
printf(IP获取失败);
返回- 1;
}
structbpf_programprog;
r=pcap_compile(Handler,prog,' tcp ',0,mask ); //规则有n种写法,例如意味着port80要抓住80端口的数据包
if(r==-1 ) () ) ) ) ) ) ) ) )。
{
printf (编译失败n );
返回- 1;
}
pap_setfilter(Handler,prog );
//3抓住包
structpcap_pkthdrpkhdr; //包信息
while(1)。
{
constunsignedchar * packet=pcap _ next (handler,pkhdr );//一行就能拿到包
if (包==空) ) ) )。
{
pap_close(Handler );
布雷克;
}
//发出包的信息
printf (数据包长度为%dn )、pkhdr.len );
//inti;
//for(I=0; I
//{
//printf(x )、packet[i];
//}
//printf () (n );
//4输出感兴趣的部分
//例如,仅输出数据包的发送源、目的地的ip和端口
//数据包由链路层14字节ip层20字节后的tcp数据构成
结构IP * IP=(结构IP * )包14;
结构tcphdr * TCP=(结构TCP * ) packet 14 20;
charipsrc[30],ipdst[30];
//strcpy(IPsrc,inet_ntoa ) IP-IP_src );
inet_ntop(af_inet,ip-ip_dst,ipsrc,30 );
strcpy(IPdst,inet_ntoa ) IP-IP_dst );
printf(%s ) %d )====%s ) %d )n )、ipsrc,ntoHs ) TCP-th_sport )、ipdst,ntoHs ) TCP-th_dport
}
}
欢迎来到学习小组【892643663】。 获取免费的丙/丙企业实战级课程资源(素材源视频),编译大礼包