Wireshark 解析器错误 Ubuntu

Wireshark dissector errors Ubuntu

我有一个 wireshark 插件代码,可以在 Ubuntu16 下完美地编译和生成 .so 文件。这个解析器是为 wireshark 1.6 编写的,插件在 wireshark 1.6 下完美运行。

然而,当我尝试将此插件用于 wireshark 2(或任何高于 1.6 的 wireshark 版本)时,出现以下错误显示 -

Couldn't load module /home/th89ct/.config/wireshark/plugins/plugin-1_0_0.so: /home/th89ct/.config/wireshark/plugins/plugin-1_0_0.so: undefined symbol: tvb_length

Couldn't load module /home/th89ct/.config/wireshark/plugins/plugin--1_0_0.so: /home/th89ct/.config/wireshark/plugins/plugin--1_0_0.so: undefined symbol: check_col

所以我想通过替换方法来编辑代码 - 因为谷歌搜索后我发现这些方法不属于新的 wireshark API.

但问题是每次我编辑代码时 - 即使只是将 space 放入空白 space - 出现以下错误 -

*gcc -c -DHAVE_CONFIG_H -I/usr/include/wireshark -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -DINET6 -D_U_=attribute((unused)) -Wall -Wpointer-arith -g -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -fPIC -DPIC packet-ife.c -o packet-ife.o packet-ife.c:105:23: fatal error: epan/emem.h: No such file or directory #include ^ compilation terminated. Makefile.linux:28: recipe for target 'packet-ife.o' failed make: *** [packet-ife.o] Error 1*

我该怎么办?我不知道!!!!提前致谢

您的问题是,从 Wireshark 2.0 开始,emem 已被 wmem 取代。您可以在 Wireshark 的 README.wmem file. Naturally, there are plenty of dissectors available in Wireshark's epan/dissectors/ and plugins/*/ 目录中阅读有关 wmem 的更多信息,作为帮助您完成转换的优秀示例。