使用 libwireshark 以编程方式获取 Wireshark 功能

2024-02-21

如果我想编写一个使用 Wireshark 功能的脚本,我会使用 tshark。我听说还有一个 libwireshark 可以在用 C 编写程序时使用,但是我一生都找不到any其文档!我尝试隔离wireshark源树中的库代码,但似乎代码组织得不是很好,并且这种隔离不存在(要么是这样,要么是我找不到它)。

我有两个问题:

  1. 我是否正确地认为 libwireshark 确实可以用于以编程方式获取我可以从wireshark/tshark 获得的任何功能?
  2. 您能给我指出有关该主题的任何文档/教程/示例吗?即使是几个简单的例子也能起到很大的作用。如果做不到这一点,你能给我解释一下如何在wireshark源代码树中找到我的方法吗?

No.

libwireshark 不适合在 Wireshark 本身之外使用,尝试这样做会让您离开靠你自己 http://ask.wireshark.org/questions/8606#8610试图找出问题所在。 libwireshark 实际上是 Wireshark 数据包分析部分的一部分(称为epan for Ethereal packet an分析仪),你可以看到在开发者指南中 http://www.wireshark.org/docs/wsdg_html_chunked/ChWorksOverview.html#ChWorksFigOverview不是 Wireshark 的全部。 libwireshark 实际上提供的是所有内置协议解析器的主接口、插件解析器的挂钩以及完整的数据包解析 API。它依赖于 Wireshark 的其余部分设置的机制,这些机制不是直接的数据包解析工具,而是使解析器能够完成其工作(例如分配释放内存块、处理压缩或加密数据等)。

改为编写一个解析器。
如果您的项目要以某种方式严格分析网络流量,您可能需要考虑为 Wireshark 编写一个解析器,而不是重新发明 Wireshark 可以为您提供的许多轮子。如果您需要做一些更复杂的事情,例如监视网络流量,然后启动其他任务或自己发送数据,那么您最好使用tshark和 shell 脚本(请记住,您不应该让tshark在任何情况下都运行极长的时间)。

如果你真的,really如果想要直接使用 libwireshark,您需要以某种方式解决其所有依赖项(最好将其设为实际的独立库),并提供它对 Wireshark(或 tshark)实际运行所做的假设。 libwireshark 的代码组织得很好,只是它由 Wireshark 源代码树下的整个 epan 目录组成,并根据 Wireshark 仍是 Ethereal 时建立的约定进行布局。每个函数的文档在公开可见时都在头文件中提供,并且在每种情况下都在源文件中提供更深入的文档。另请记住,自述文件.developer https://code.wireshark.org/review/gitweb?p=wireshark.git;a=blob_plain;f=doc/README.developer与您拥有的源代码版本一起分发是获得一些提示的好地方(如果您想执行此任务,您也可以阅读所有 README.* 文件)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 libwireshark 以编程方式获取 Wireshark 功能 的相关文章

  • 如何在 PowerShell 中关闭所有打开的网络文件? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试

随机推荐