0

У меня есть код плагина wirehark, который компилирует и генерирует файлы .so в соответствии с Ubuntu 16. Этот диссектор был написан для wirehark 1.6, а плагин отлично работает под wirehark 1.6.Ошибки рассеивателя Wireshark Ubuntu

Однако, когда я пытаюсь использовать этот плагин для Wireshark 2 (или любой Wireshark версии выше, чем 1.6) следующие ошибки показывают -

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

поэтому я хотел бы изменить код, заменив методы - так как после прибегая к помощи Я обнаружил, что эти методы не относятся к новому API-интерфейсу wirehark.

но проблема каждый раз, когда я изменить код - даже только с пробелом в пустом пространстве - появляется следующее сообщение об ошибке -

*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*

что я должен делать? Понятия не имею!!!! Заранее спасибо

ответ

0

Ваша проблема в том, что emem был заменен на wmem, начиная с Wireshark 2.0. Вы можете узнать больше о wmem в файле README.wmem Wireshark. Естественно, в каталогах Wireshark epan/dissectors/ и plugins/*/ имеется множество диссетекторов, которые служат отличными примерами, которые помогут вам с переходом.

Смежные вопросы