问题描述
|
我希望编写一个应用程序,该应用程序读取Wireshark过滤器文本框中的任何过滤条件,然后使用Lua对其进行操作。有人知道这是否可能吗?我想知道是否有可能在深入学习Lua并将其与Wireshark结合使用之前。
谢谢!
乔
解决方法
不,您无法阅读它,但是可以设置过滤器并将其应用于当前捕获。请参阅Wireshark文档中的GUI支持部分。
要设置显示过滤器文本框的文本,请使用
set_filter(text)
。
要应用显示过滤器的当前文本(使其生效),请使用apply_filter()
。
避免从解剖器内部调用apply_filter()
(重新调用解剖器会发生无限循环)。该功能更适合菜单操作或按钮操作。
编辑:将自己的get_filter()
Lua函数添加到Wireshark的Lua API(未经测试):
在funnel_stat.c
中添加一个名为funnel_get_filter()
的函数(例如,参见第468行)。
将get_filter
加到ѭ7(funnel.h:80
)。
在funnel_stat.c:546
和tap-funnel.c:90
处将funnel_get_filter
加到funnel_ops
。确保根据funnel_ops_t
将其添加到正确的数组索引处。
将以下代码复制到wslua_gui.c
,然后进行编译:
/* TODO: Test me!! */
WSLUA_FUNCTION wslua_get_filter(lua_State* L) { /* Get the text of the display filter textbox */
const gchar* text;
text = ops->get_filter();
lua_pushstring(L,text);
WSLUA_RETURN(1); /* The display filter textbox\'s text. */
}