Создание полностью независимого модуля анализатора wireshark в C ++ - PullRequest
0 голосов
/ 25 июня 2019

Я хочу создать независимый модуль анализатора Wireshark, который можно перекомпилировать и использовать на различных платформах, таких как Android (с использованием NDK).

Для этого я выбрал некоторые исходные файлы Wireshark и применил их.мои изменения.Теперь у меня есть полноценный модуль C и C ++, скомпилированный с помощью компилятора C ++ в Qt ide и в Ubuntu, который сам состоит из серии файлов .h и .cpp (с моими пользовательскими изменениями) и серии .h и .cpp.файлы, которые я написал с нуля.

Этот модуль ссылается на большое количество заголовочных файлов Wireshark, а также на три библиотеки Wireshark, а именно libwireshark.so и libwiretap.so и libwsutil.so, которые я поместил в требуемые файлы.Заголовочные файлы в папке и библиотеки в другой папке и установите их вместе с проектом, и проект выполняется правильно.Поскольку этот модуль основан на Wireshark, он также имеет некоторые зависимости от glib и некоторых других библиотек, которые уже доступны в Ubuntu.Эти библиотеки включают в себя следующее с командой ldd myApp.

linux-vdso.so.1 (0x00007ffcaccf8000)
libwireshark.so.7 => /usr/local/lib/libwireshark.so.7 (0x00007f7d6f561000)
libwsutil.so.6 => /usr/local/lib/libwsutil.so.6 (0x00007f7d6f33e000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f7d6efb5000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7d6ed9d000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7d6e9ac000)
liblua5.2.so.0 => /usr/lib/x86_64-linux-gnu/liblua5.2.so.0 (0x00007f7d6e77a000)
libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f7d6e45f000)
libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f7d6e0fa000)
libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f7d6de24000)
libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f7d6dbf2000)
libwiretap.so.5 => /usr/local/lib/libwiretap.so.5 (0x00007f7d6d90f000)
libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f7d6d70b000)
libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f7d6d3f5000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f7d6d1d8000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7d6ce3a000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7d6cc1b000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7d743f9000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7d6ca17000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f7d6c802000)
libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f7d6c4d3000)
libidn2.so.0 => /usr/lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f7d6c2b6000)
libunistring.so.2 => /usr/lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f7d6bf38000)
libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f7d6bd25000)
libnettle.so.6 => /usr/lib/x86_64-linux-gnu/libnettle.so.6 (0x00007f7d6baef000)
libhogweed.so.4 => /usr/lib/x86_64-linux-gnu/libhogweed.so.4 (0x00007f7d6b8bb000)
libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f7d6b63a000)
libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f7d6b436000)
libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f7d6b22b000)
libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f7d6b027000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f7d6ae0c000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f7d6ab9a000)
libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f7d6a992000)

. Как я уже сказал в начале своего вопроса, моя цель - сделать этот модуль полностью независимым и способным перекомпилироваться и использоваться на других платформах.как Android.Теперь мой вопрос заключается в том, возникает ли эта независимость, помещая все эти библиотеки на вершину вместе с проектом?Если нет, каково решение?Существует ли подобная программа для получения помощи (например, Гуру сигналов , но это не открытый код)?

...