我有个问题。我想在pcap中更改数据包的时间值。当我们在wireshark中打开一个pcap时,我们在数据包序列号后的第二列中看到一个时间戳值。我想更改数据包的时间值。虽然我可以做同样的事情,但是我面临着如下的问题。
假设wireshark中显示的数据包的当前时间值为0.960727,我想在此时间戳上加上100000。现在,数据包的新戳记变为0.1060727,理想情况下应为1.060727。如果您在wireshark中打开任何pcap文件,您将永远不会找到小数点后超过6位的时间值。但是当我将这个值相加时,我得到了小数点后的7个数字。
请告诉我怎样才能使时间值从0.1060727变为1.060727?
感谢你在这里的建议。
向您致敬,Som
发布于 2016-08-12 03:17:27
我不完全清楚您要做什么,但我会猜测您正试图通过编辑二进制捕获文件来手动修改单个数据包的时间戳。假设文件格式是.pcap文件,那么我猜想您正在尝试将一个特定数据包的时间戳增加100000微秒?
假设是这种情况,那么您需要定位数据包报头的ts_sec和ts_usec值,并将0x000186a0微秒添加到ts_usec值的当前值中,但是如果此值超过0x000f423f (即,它大于或等于1秒),那么您应该将0x00000001添加到ts_sec值中,并从新计算的ts_usec值中减去0x000f4240。
要记住的一件重要事情是,.pcap文件是以大端格式还是小端格式编写的。这是由所谓的magic number (0xa1b2c3d4表示大端,0xd4c3d2a1表示小端)决定的。如果合适,请确保使用ts_usec值和ts_sec值的正确字节顺序执行加/减操作,并确保按照文件的预期字节顺序将字节写回ts_usec和ts_sec字段;否则,生成的时间戳将不正确。
如果这不是你想要做的,那么请明确你想要做的是什么。
https://stackoverflow.com/questions/37909362
复制相似问题