Wireshark - 以编程方式修改pcap文件中的数据包

时间:2012-09-27 14:00:30

标签: c protocols wireshark

我在pcap文件中有一系列包含各种协议的数据包,例如GTPV2,S1AP,Diameter等。我需要知道是否有办法以编程方式修改某些字段,例如:

用于GTPV2协议:MCC字段 - 移动国家代码,MNC字段 - 移动网络代码 对于S1AP协议:Protocolie-Field等等

我设法通过专门解决我感兴趣的缓冲区的偏移来获取proto_tree并修改tvbuff内容,但是我可以这样说:

e212.mcc = "something"

其中e212.mccc是Wireshark过滤器?我问这是否可以用任何语言完成,但我的猜测是解剖器只用于显示,而不是修改,我没有API通过Wireshark过滤器直接访问数据包的字段。如果是这样,你知道任何开源工具可以根据一些规则修改pcap文件中的数据包(最好/还包括Wireshark过滤器)?

2 个答案:

答案 0 :(得分:0)

我不完全理解你的问题,但如果我是对的,sed会为你做好工作。正则表达式允许您浏览文件,选择特定模式(甚至是偏移)并替换它们。当我需要在一个必须交给第三方的文件上密封机密信息时,我直接在pcap文件上使用这种技术。

检查here然后尝试一下:)

答案 1 :(得分:0)

我在perl中做了类似的事情,将捕获文件导出到wireshark的文本中,然后将该文本文件构建成一个数组,其中十六进制中的每个数据包都是一个条目,然后我只是将该数组运行到foreach循环中,钻孔下到GTP层并通过IE字段解析,根据需要调整所讨论的IE的十六进制值。然后我将数组打印成一个新的文本文件(重新生成左侧的十六进制偏移是棘手的部分),然后将新的文本文件读入text2pcap实用程序,将其重新生成为.pcap文件。