基于python3的tkinter和scapy可视化报文构造工具(一)

博主分享了如何利用Python的Scapy库构造和修改网络报文,以及在缺乏可视化工具时,借助Tkinter创建了一个简单的报文构造应用。尽管Tkinter界面简单且扩展性有限,但作为内置模块,它避免了额外安装和打包时文件过大的问题。文中展示了工具的截图,并讨论了Tkinter的优势和适用场景。
摘要由CSDN通过智能技术生成

    在工作中,有段时间需要构造报文来进行相关的系统功能验证,而当时手边又没有一个趁手的报文构造或者改包工具(其实后来知道有的只是我不知道----手动狗头),遂接触了python3的第三方库scapy。

   可以先看看scapy的官方介绍

   Scapy is a Python program that enables the user to send, sniff and dissect and forge network packets. This capability allows construction of tools that can probe, scan or attack networks.   

   In other words, Scapy is a powerful interactive packet manipulation program. It is able to forge or decode packets of a wide number of protocols, send them on the wire, capture them, match requests and replies, and much more. Scapy can easily handle most classical tasks like scanning, tracerouting, probing, unit tests, attacks or network discovery. It can replace hping, arpspoof, arp-sk, arping, p0f and even some parts of Nmap, tcpdump, and tshark.

  大概意思就是Scapy是一款强大的,用Python编写的交互式数据包处理程序,它能让用户发送、嗅探、解析,以及伪造网络报文,从而用来侦测、扫描和向网络发动攻击。Scapy可以轻松地处理扫描(scanning)、路由跟踪(tracerouting)、探测(probing)、单元测试(unit tests)、攻击(attacks)和发现网络(network discorvery)之类的传统任务。它可以代替hping,arpsoof,arp-sk,arping,pof 甚至是部分的Nmap,Tcpdump和Tshark的功能。

    主要在linux上根据自己的需要构造简单的http,hpps报文或者在现成的报文上改变http的host字段,https的sni字段或者报文的IP地址和端口,在改包或者构造报文的过程中,需要对相关协议非常熟悉,知道协议每个字段的相关位置和含义才知道怎么去构造。但是有些时候我只关注协议的某些字段,如DPI工作中,更多关注的是http的host,reffer等,https的sni字段,其他的我不需要太关注,此时在linux上通过scapy改起来就会有点麻烦。遂萌生了写一块可视化的报文构造工具只需要填自己关注的字段即可构造报文或者改已有的报文。

    选用python的Tkinter 模块来进行工具的可视化开发。在网络上有很多抱怨Tkinter模块的言论,比如:界面丑、不灵活、扩展功能差、模块少……等等,诚然,Tkinter确实有这些毛病或者说是缺点,但是它也并非是一无是处。

    Tkinter最大的优势,在于其是Python的内置模块;仅仅是这一点,就可以带来很多优点。由于是内置模块,所以不需要进行额外的安装,这也就避免了很多刚刚接触的小伙伴可以顺利地开始import,而非各种pip安装失败或者是到处找各种版本可行的安装,同时,因为其内置模块的属性,使得其在程序打包为EXE或其他可执行文件的时候,打包出来的程序文件不会特别的大,这样对程序的传播还是很有用处的。

先简单看看做出来的效果

   

    

 

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ftzchina

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值