2016-04-25 125 views
0

我们有一个消息从一个盒子路由到多个主机中的一个 - 我尝试了下面的命令;如何使用tcpdump解密消息

/usr/sbin/tcpdump -A -X -v -vv -vv port 11111 and host box1.com or host box2.com or host box3.com or host box4.com 

我得到下面的输出:

16:23:09.981969 IP sbox1.com.11959 > box1.com.11111: . ack 37 win 81 <nop,nop,timestamp 947669375 2267318557> 
     0x0000: 4500 0045 c008 4500 4506 454f ba39 3e10 [email protected]@..O.9>. 
     0x0010: 0a30 600d 0eb7 07b0 402d 44c8 21b6 ef42 [email protected]!..B 
     0x0020: 0987 8898 a796 89a1 90b6 456a 89b0 12b4 ...Q.i......8|I. 
     0x0030: 8724 891d 

的消息是二进制格式 - 我怎么可以打印在人类可读的格式尽可能?

+1

我建议你转储到一个文件,然后使用'wireshark'来读取文件。 'wireshark'意识到不同的协议,并且可能能够以多种方式呈现它们,这可能对您有益。 – alvits

回答

0

您在调用tcpdump时使用参数-X。根据tcpdump的Manpage,这告诉tcpdump:“当解析和打印时,除了打印每个数据包的标题外,还要以十六进制和ASCII格式打印每个数据包的数据(减去其链接级别标题)。”

右边的ASCII文本是实际的数据包。如果你只对ASCII文本感兴趣,那么你可以简单地省略-X参数。你也可以找到一些更有用的命令tcpdump here

我不确定你想从这个特定的ACK数据包中学到什么信息,但是如果你需要任何帮助解密它,微软提供了一个相当不错的入门指南/基础指南here