Python复现Wireshark中Payload的字符串显示函数

Wireshark Payload显示函数探索

Github地址

https://github.com/sunbcy/Wireshark_Hex_String_Display

背景

由于工作的原因需要看大量的数据包,一开始还行,随着数量越来越多,人越来越疲惫,感到人力分析有限,很多时候需要反复翻看数据包定位问题,然而往往耗费大量时间。人生苦短,想到可不可以用Python来做下数据包的相关分析。于是开启Bing大法,看了些帖子后发现有Scapy网络安全分析库,可以用来读取分析数据包(看起来很有搞头!!!经过一番尝试,确实算是发现了一块新大陆,可以鼓捣鼓捣,弄个小工具出来。实际这个模块的功能很全,应用很广,不止于数据包分析。也能构造以及修改数据包相关信息,这些内容以后有空可以多撰几篇帖子)。

环境准备

  1. 需要安装scapy模块,这个很easy,一般能无视地形安装成功:
pip2 install scapy
pip3 install scapy
from scapy.all import *
  1. 看帖子的过程中发现,如果是分析HTTPS/SSL的流,需要安装另一个模块scapy_ssl_tls,这个模块的安装似乎有点费劲,在不同系统不同Python版本下安装方式有差异,直接使用pip可能会报错。作者一开始安装的是scapy-2.4.5和scapy_ssl_tls-2.0.0。在Windows系统python2环境下运行的,后来作者一番尝试,发现python3下这两个模块也能安装上去。本篇在此不过多讲该模块的安装,后面有空在补充帖文。
from scapy_ssl_tls.ssl_tls import *

主题

本篇的主题是探讨Wireshark中Payload的字符串显示函数在Python语言中的复现,此处我的环境以Windows下的Python3为主。

先来看看,关于Wireshark中Payload的字符串显示效果是怎样的:
在这里插入图片描述

左边是平平无奇的Hex字符串,右边是部分解码的可视化的字符串。
我们今天的目的就是在Python3环境下,已知左边部分的字符串,解码出右边的字符串。
那么 肉眼观察下右边的字符串可以发现几乎都是Ascii码(0~127)中可视的字符串:
在这里插入图片描述

那么问题就简单了,对hex字符做判断,如果在ASCii的可视化范围内(0x20~0x7e)就用一下urllib.parse.unquote解码,如果不是,就用"."英文逗号来代替。

我们准备的字符串,就是上面左边红框区域内的string:

504f5354202f6d6d746c732f303030303465653020485454502f312e310d0a4163636570743a202a2f2a0d0a43616368652d436f6e74726f6c3a206e6f2d63616368650d0a436f6e6e656374696f6e3a20636c6f73650d0a436f6e74656e742d4c656e6774683a203436390d0a436f6e74656e742d547970653a206170706c69636174696f6e2f6f637465742d73747265616d0d0a486f73743a2065787473686f72742e77656978696e2e71712e636f6d0d0a557067726164653a206d6d746c730d0a557365722d4167656e743a204d6963726f4d657373656e67657220436c69656e740d0a582d4f6e6c696e652d486f73743a2065787473686f72742e77656978696e2e71712e636f6d0d0a0d0a19f10400a10000009d0104f10100a8111084f1b70d588d9ae34d7e79b2c0d2997f78b8364be5b8e2f08ae5156ece896256f4490000006f010000006a000f01000000630100093a80000000000048000cca765c99e511090ecec8597f0048d670bf4e217402bdf6a3636ad8caef0e5ba0a966c9f8fae13ee25a6ca68f0fed1f3eaa989d34b850af6d69f209d44f97a1149c0cb07d9d10328049505c0371909e844b36034519b219f10400243658566d4c28660b719792835c27368edc7dad468f84e9e194f987a4f4ab2dc54eed5cd417f10400e592d0f27f2dc12ac89be062d79a4c2c23069064c5158959dc20a50dc440394148dd7fcd0e130a746e9b7b621e36cc2d1bbfbb501f9d5469d3130f326671adbed395e49f67c443bb69cfc1b1e6d8bb1abd49d63c1f9abfb925834d4daaf49142f6c1789fe2605ba05099c3c400ee9926952c4f8d5c5e3e71da4efc2bf0bc5c0df09fe6700e2adad11c95685e7364821ce2a507e3e29bfa2b5d764428604f65e16afdd6f54f5fa4afb434f2ba98e719c9d4a7cf17bc26b1c5c8226a6474a1712d648bd5301cc3f4304d00aeededc4e09640b73a982d49ce79971b19de26bd80f6cb832edc91fc15f1040017b6a1de6b2513db2403d9bb5ea89fc2616fb14178eb4733

代码生成的效果:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sunbcy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值