【问题标题】:Wireshark - programatically modify packets from pcap fileWireshark - 以编程方式修改来自 pcap 文件的数据包
【发布时间】:2012-09-27 14:00:30
【问题描述】:

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

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

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

e212.mcc = "something"

哪里 e212.mccc 是 Wireshark 过滤器?我在问这是否可以用任何语言完成,但我的猜测是解析器仅用于显示,而不是修改,并且我没有 API 可以通过 Wireshark 过滤器直接访问数据包的字段。如果是这样,您是否知道任何可以根据某些规则(最好/也包括 Wireshark 过滤器)修改来自 pcap 文件的数据包的开源工具?

【问题讨论】:

  • 这种编辑不适用于 Wireshark。看看libnetdude

标签: c protocols wireshark


【解决方案1】:

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

检查here 并试一试:)

【讨论】:

  • 我知道 sed,这仅适用于基于文本的协议,但是,如果您想修改以二进制格式编码的数据包中的特定字段,sed 对您没有太大帮助。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2018-12-18
    • 2018-08-09
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    相关资源
    最近更新 更多