发包工具会用到 pypcap下面是pypcap库的介绍
pypcap是一个对libpcap
C库进行封装和简化的面向对象的抓包工具库,可以非常方便的用于抓包和过滤,结合dpkt
解析库可以完成许多网络数据包的抓取和分析。本文讲述的就是如何使用pypcap
及dpkt
库实现简单抓包工具,也称为嗅探器
我这里是用的 pypcap 库中的 sendpacket用法 因为没有找到相关教程 一直不知道 sendpacket 中的ct.c_char_p里面的buf是什么类型的数研究了很久 int 元组 str 数组 都试过了都不行 最后发现是bytes
思路如下:
1.使用pcap 中的findalldevs 查找设备
2.将查找出来的设备与注册表中的设备做对比并返回可读的设备名称
3.读实例化pcap库配置好参数
4.配置好要发送的报文
5.使用sendpacket 发送报文
import pcap
import platform
import winreg as wr
def FindalldevsName(devs):
IF_REG = r'SYSTEM\CurrentControlSet\Control\Network\{4d36e972-e325-11ce-bfc1-08002be10318}'
reg = wr.ConnectRegistry(None, wr.HKEY_LOCAL_MACHINE)
reg_key = wr.OpenKey(reg, IF_REG)
try:
reg_subkey = wr.OpenKey(reg_key, devs + r'\Connection')
return wr.QueryValueEx(reg_subkey, 'Name')[0]
except FileNotFoundError as e:
...
return None
name = pcap.findalldevs()
Counter = 0
for i in name:
Counter = Counter + 1
print(FindalldevsName(i.split('_')[1]),Counter)
pkt = pcap.pcap(name[0], promisc = True, immediate = True, timeout_ms = 50)
bytes = b'\xff'
pkt.sendpacket(bytes)