不定期更新的作业

每个人找一个抓包软件,分析其功能,设计的模块等,着重使用和分析。

首先明确几点:
类UNIX平台的网络嗅探技术主要通过内核态的BPF(伯克利包过滤)和用户态的libpcap抓包工具库实现。BPF是数据链路层的一种原始接口,提供原始链路层封包的收发功能。
它支持过滤封包。对封包中的数据采取算数操作,并将结果与常量或封包中的数据或结果中的测试位相比较,以此决定是否接收包。

Libpcap是类UNIX平台用户态下的抓包工具库,与BPF配合使用,为类UNIX平台上的应用程序提供标准的网络嗅探接口。

libpcap的包捕获机制就是在数据链路层加一个旁路处理。当一个数据包到达网络接口时,libpcap首先利用已经创建的Socket从链路层驱动程序中获得该数据包的拷贝,再通过Tap函数将数据包发给BPF过滤器。BPF过滤器根据用户已经定义好的过滤规则对数据包进行逐一匹配,匹配成功则放入内核缓冲区,并传递给用户缓冲区,匹配失败则直接丢弃。如果没有设置过滤规则,所有数据包都将放入内核缓冲区,并传递给用户层缓冲区。

libpcap的抓包框架< br/>
pcap_lookupdev()函数用于查找网络设备,返回可被pcap_open_live()函数调用的网络设备名指针。

pcap_open_live()函数用于打开网络设备,并且返回用于捕获网络数据包的数据包捕获描述字。对于此网络设备的操作都要基于此网络设备描述字。

pcap_lookupnet()函数获得指定网络设备的网络号和掩码。

pcap_compile()函数用于将用户制定的过滤策略编译到过滤程序中。

pcap_setfilter()函数用于设置过滤器。

pcap_loop()函数pcap_dispatch()函数用于捕获数据包,捕获后还可以进行处理,此外pcap_next()和pcap_next_ex()两个函数也可以用来捕获数据包。

pcap_close()函数用于关闭网络设备,释放资源。

自己在网上找开源的代码获取账号密码

猜你喜欢

转载自www.cnblogs.com/eosmomo/p/12591421.html