首页 > 编程知识 正文

kali linux抓包工具(如何下载c语言编译器)

时间:2023-05-05 19:44:44 阅读:66893 作者:4930

在本文中,您可以使用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】。 获取免费的丙/丙企业实战级课程资源(素材源视频),编译大礼包

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。