tcpdump 捕获中文传输数据包,并手动解析


开启tcpdump抓包

centos7 下 ,只抓有数据的包:

1
tcpdump -n -i eth0 '((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0' and src 10.10.139.42 and dst 10.10.128.57 and port 21000  -XX



示例(1)输入“中国a”

centos7 下 netcat 输入:



抓包结果放在 WireShark中分析

tcpdump抓包:

wireshark分析抓到的文件:

可以看到 中文的16进制编码为 d6 d0 b9 fa 61 0a,

查看 控制台的编码:

可知,中文经过GBK编码以后的 16进制表示为: d6 d0 b9 fa 61 0a;

GBK的编码规则如下:

d6d0 b9fa 610a 按双字节表示转换为:D6D0 B9FA 610A

GBK对照表:http://ff.163.com/newflyff/gbk-list/

D6D0 对应的中文为:

B9FA 对应的中文为:

610A 对应的中文为:

搜索没有对应的GBK编码

ASCII码对照表:http://ascii.911cha.com/

0A 为换行符;



示例(2)输入“asdf123”

输入:

抓包:

解析: