分析wireshark中无法正确显示字符的原因

栏目: 编程工具 · 发布时间: 7年前

内容简介:分析wireshark中无法正确显示字符的原因

我们知道wireshark所抓的是经过网卡的数据流,也就是原生的二进制码流,在服务器端是什么形式传输,那么wireshark所捕获的就是什么形式,当然wireshark会有默认的显示方式。此次讨论的主要是针对数据部分的内容乱码。因为像HTTP,TCP,IP等头部,首先是英文,也就是无论哪一种编码方式,只要按照ASCII对应的字符集都可以正确的解释;再次头部基本上除了以ASCII进行编码以外,是不进行其他处理的,例如压缩。(但是HTTP2.0引入了头部压缩技术)

Wireshark中的编解码方式有utf-8,ASCII,HEX等方式,因此我们可以使用这几种方式对所抓到的二进制码流进行解码,以友好的方式进行显示。

在wireshark中,中文的显示有时候存在着一定的问题。尽管现在wireshark已经有了中文版本,同时也有utf8解码方式,但是中文的显示有的时候却是乱码,就我们看到的�形式或者是.形式,稍后我会提到为什么乱码显示为�或者.,在此之前先分析一下乱码的原因。

1、 首先可能所抓的字节流编码方式为gbk,big5等方式,而wireshark并没有提供对应的解码方式。对应的是客户端和服务器协商的Accept-Charset以及Content-Type头域。

2、 当然这些字节流也可能是经过压缩编码的。对应的是客户端和服务器协商的Accept-Encoding以及Content-Encoding头域。

3、 当然这些字节流也可能是经过传输编码的。对应的是服务器的Transfer-Encoding头域。

4、 当然这些字节流也可能是经过加密的。

5、 当然这些字节流是符合某种协议的。但是wireshark不支持的。可以通过wireshark右上角的expression看到,目前wireshark生态圈大概支持了一千多种协议。

数据流被wireshark捕获的时候,首先按照某种协议进行了解码。比如TCP协议,从Frame->Ethernet->IP->TCP一层层进行解码,这些是基础的协议部分。对于情况2的gzip编码,情况3的chunk编码,wireshark都有默认的支持,都会有解压缩和报文重组的功能,不会导致乱码问题。但是对于情况1,编码方式由多种,wireshark无法全面提供,是常见的乱码。对于情况4,需要相应的密钥进行解密,在这里和这里分别整理了手机和浏览器进行解密的方法。对于情况5,大多数是一些私有协议,就不再讨论。

前面遗留的一个问题就是�和.的问题。�是会在utf-8的时候出现,utf-8对于无法识别的数据流,会使用�表示,同时�编码为0xFFFD。因此如果一个文件使用utf-8格式存储,其中出现了�字符,由于其表示为0xFFFD,因此在转换为其他编码格式,比如gbk,往往还是乱码。在ASCII码中,无法识别的字符会使用.表示。

上面我们是在数据层面讨论的可能导致乱码的问题,其实在显示的时候可能也会出现毛病。当然现代的计算机字体库比较全面,这类情况较少,但是还是简单说一下。

大家都编辑过word,而word是可以选择宋体,还是times new roman等字体格式来显示的。同样的道理,那wireshark默认的显示字体是什么呢?

在说wireshark的默认字体之前,看看浏览器是如何显示网页的。浏览器在对所接受的数据进行解析后,比如将数据流中的中文都进行了utf8解码后,会调用本身的渲染引擎来让这些汉字以各种样式来显示出来。比如网页中规定了font为楷体,则渲染引擎会调用操作系统的楷体字库,完成楷体中文字符的显示。如果系统中没有楷体字库,就会调用默认的字库显示。

对于word和wireshark这样的软件同理,根据设定的字体,调用相应的字体库。wireshark默认字体是consolas,这个字体库是可以显示中文字体的。但是如果选择不支持中文字体的字库,有可能就显示不了了。

以上就是近期在解决乱码问题时候,突然冒出来的想法,做了粗浅的记录。

本文为CSDN村中少年原创文章,转载记得加上小尾巴偶,博主链接这里。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

代码之髓

代码之髓

[日] 西尾泰和 / 曾一鸣 / 人民邮电出版社 / 2014-8 / 45.00元

《代码之髓:编程语言核心概念》作者从编程语言设计的角度出发,围绕语言中共通或特有的核心概念,通过语言演变过程中的纵向比较和在多门语言中的横向比较,清晰地呈现了程序设计语言中函数、类型、作用域、类、继承等核心知识。本书旨在帮助读者更好地理解各种概念是因何而起,并在此基础上更好地判断为何使用、何时使用及怎样使用。同时,在阅读本书后,读者对今后不断出现的新概念的理解能力也将得到提升。 《代码之髓:......一起来看看 《代码之髓》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

MD5 加密
MD5 加密

MD5 加密工具