我正在使用libpcap并希望能够分析数据包,但根本没有wireshark。但是,我想使用wireshark解剖器。有没有人这样做,可以给我一个解释所需的步骤?
答案 0 :(得分:1)
首先,请参阅this answer,了解使用epan
并链接到libwireshark
的危险。您基本上只是单独尝试使其工作,它并不意味着以这种方式工作,新版本可能会破坏您的代码。由于该API不会发生变化,因此始终建议write a dissector instead。
如果那不吓到你,请继续阅读。
我没有执行过,但我对wireshark
代码树或多或少熟悉。我相信您所追求的是#include <epan/packet.h>
,#include <epan/frame_data.h>
和#include <epan/tvbuff.h>
(Testy虚拟缓冲区),这些头文件与wireshark
一起分发,因为需要写插件解剖器。
由于一个协议通常包含另一个协议,因为有效负载wireshark
的处理方式是tvbuff_t
。一个解剖器返回tvbuff_t
,然后由另一个解剖器使用。您需要执行数据包的整个解码(例如,从以太网开始),因为wireshark
不适合您。
epan
directory中的代码记录在doc
directory中,特别是section 1.7 of doc/README.dissectors
(Calling Other Dissectors)包含有关如何使用tvbuff_t
和find_dissector()
的信息。
这是一种非常黑客的做事方式,因此我再次发出警告:如果你能够在wireshark
内编写解剖器并使用它,那就去做吧。
答案 1 :(得分:1)