2

我一直在阅读 Wireshark 附带的文档,并分析源代码以确定 Wireshark 中是否存在函数或函数集合,这将允许我传递包含捕获数据的缓冲区(而不是使用外部文件)。

我也在 Wireshark-dev 列表上问过这个问题,但没有任何回应。

据我了解,您告诉 Wireshark 在哪里查找数据包(根据文件、管道或套接字),它会告诉您何时从该流中获得数据包,所以我的直觉是没有办法将指针传递给包含捕获数据的缓冲区,并让 Wireshark 解析它可以在那里找到的任何内容。

但是,我绝不是 Wireshark 内部的专家,所以我期待 SO 帮助我找出明确的答案。谢谢你。

4

1 回答 1

1

您是否尝试过创建一个新tvbuff_t的 asTVBUFF_REAL_DATA并提供您的内存区域作为data参数?

tvbuff_t *tvb = tvb_new_real_data(mem_buffer_ptr, mem_buf_length, mem_buf_length);
//mem_buffer_ptr is your memory buffer
//mem_buf_length is the number of bytes in your buffer

Wireshark 历来不能很好地与其他应用程序配合使用,因此这是否可行是值得怀疑的,特别是如果您认为您的数据在被剖析时可能会发生变化。不能写出临时文件吗?

于 2011-07-06T17:08:20.710 回答