本文将介绍一种将pcap数据包的payload部分转换成对应16进制文本输出的一种方法。
在对数据包处理的过程中,很多的小伙伴希望将数据包转换成为对应的c array或者对应的16进制形式,这样可以字节将这些16进制数据作为输入,供程序进行处理。图1是follow一条TCP流的默认形式
图1
图1可以看到follow的结果默认以ASCII编码的方式显示应用层的数据,该应用层为HTTP请求数据。有的时候由于有些系统的输入并不是PCAP数据包,而是json,xml,文本等格式的文件,需要将应用层数据以这些类型的数据进行存储。直接存成ASCII的文本形式存在的问题是非打印字符可能存在显示存储问题,因此通常来说需要将应用层的16进制数据按照某种需求存储成为一定的格式,如图2:
图2
图2是按照C arrays的形式进行显示,本质上是将数据的十六进制以逗号的形式隔开进行显示。图二中前三个包分别为三次握手,因此应用层数据为空,因此C arrays是一个空