pcap报文格式参考1 LinkType:4B链路类型 常用类型: 1 Ethernet, and Linux loopback devices101 “raw IP”, with no link 这两种报文在wireshark里都可以解析,但大部分的其他处理软件,如pcap_flow(github项目), xcap,科来(即便转变为libpcap也不行),都对101的这种报文表示不支持。 tcpreplay也不支持101,会导致回放报文有问题。 想想也对的,101没有链路信息,上来就是ip层报文,确实不能回放。说明这几个家都是互相抄,bug都抄成一样的了。FIXME 怎么将101的报文加为1的,即加上链路层呢?这里只展示手工的做法, 原始文件内容hexdump radius-response.pcap 0000000 c3d4 a1b2 0002 0004 0000 0000 0000 0000 添加mac层(ethernet)的步骤 1 使用OKteta(一种linux二进制编辑器)打开原始文件 2 linktype从101改为1 方法:将0x15(hexdump显示的位置为0x15,但OKteta显示的为0x14位置,下面位置处都以hexdump为准,但修改变动内容以Okteta为准)从65改为01 3 增加dst mac, src mac, l2 ip proto, 假设目标mac是1234 5678 1234(即1234.5678.1234),源mac是 5678.1234.5678, IP是0800 方法:在0x28的4500前插入1234 5678 1234 5678 1234 5678 0800 4 由于增加了mac层,所以pcap文件头的caplen和len都要改变。caplen和len原来在4500之前,现在中间插入了步骤3的内容。 增加的长度即插入的步骤3新增内容的长度,即14字节(6mac,6mac,2ip-proto) 例子中将0x20处的,0030 0000 0030 0000分别对应4字节caplen和4字节len,分别加14字节,变为003e 0000 003e 0000 参考 1 http://www.cnblogs.com/hnrainll/archive/2012/06/17/2552943.html |
|