在考虑编译和导出解析器时应该阅读的资源是:
编译解剖器
假设您使用源代码构建了 Wireshark,而不使用 sudo apt-get。
假设您的插件解析器名称是“foo”(通常,这将
是您的协议的简称,全部小写)
插件及其文件的目录
插件应该放在一个新的 plugins/foo 目录中,该目录应该
至少包含以下文件:
- 作者
- 正在复制
- 变更日志
- CMakeLists.txt
- Makefile.am
- moduleinfo.h
- plugin.rc.in
有关这些文件的详细信息,请参阅README.plugins
现在跳回插件目录。
用于自定义扩展
转到插件目录并复制 Custom.m4.example 和
Custom.make.example 文件到同名但没有“.example”的文件
后缀。现在你有两个自定义文件准备好构建一个插件了
名称“富”。如果需要,请替换名称。
对于 CMake 构建,在 CMake 生成时传递自定义插件目录
步骤命令行:
CMake ... -DCUSTOM_PLUGIN_SRC_DIR="plugins/foo"
或将顶层文件 CMakeListsCustom.txt.example 复制到 CMakeListsCustom.txt
(也在顶级源目录中)并编辑,以便 CUSTOM_PLUGIN_SRC_DIR 是
set() 到插件的相对路径,例如
设置(CUSTOM_PLUGIN_SRC_DIR 插件/foo)
进入目录 Wireshark-2.4.X
运行
$ ./autogen.sh 和 ./configure 设置您的构建环境。
好消息是,如果您正在开发单个插件,那么您将
发现重新编译插件比重新编译解析器快得多,并且
然后将其链接回Wireshark。使用“make -C plugins”来编译
你的插件。
坏消息是 Wireshark 不会使用插件,除非插件
安装在它希望他们找到的地方之一。
解决此问题的一种方法是设置环境变量
运行 Wireshark 时:WIRESHARK_RUN_FROM_BUILD_DIRECTORY=1。
你的插件分发
要分发您的插件,您需要向用户提供解析器的二进制文件(解析器编译时生成的 .so 文件)
用户需要将这些文件放在他们的 Wireshark 安装个人插件文件夹中并重新启动 Wireshark。
要找到插件文件夹,请打开 Wireshark 并转到 帮助 -> 关于 -> 文件夹。如果个人插件文件夹中提到的路径不存在,则创建相同的路径。
分发 Lua 解析器相当容易。
只需将 Lua 脚本复制粘贴到个人插件文件夹中,您的插件就可以使用了。