基于wireshark插件的国密标准检测工具的设计与实现
lua语言学习:
-- create a new dissector
local NAME = "Doip"
local PORT = 13400
local Doip = Proto(NAME, " Doip Protocol")
-- dissect packet
function Doip.dissector (tvb, pinfo, tree)
end
-- register this dissector
DissectorTable.get("udp.port"):add(PORT, Doip)
如上一个简单的lua代码分为三部分:
- 创建Proto对象
- 创建dissector方法
- 注册解析器
在Wireshark中运行Lua插件后,你可以通过几种方式来查看输出结果:
1. 控制台输出:插件可以使用`print()`函数来将输出信息打印到Wireshark的控制台。在Wireshark的主窗口底部有一个控制台窗口,你可以在那里查看插件的输出。在前面的Lua示例插件中,我使用了`print()`函数来输出信息。
2. Lua插件控制台:Wireshark还提供了一个专门的Lua插件控制台,你可以通过"Tools" -> "Lua" -> "Lua Console"来打开。在Lua插件控制台中,你可以执行Lua代码并查看输出结果。如果插件中使用了`print()`函数,输出将显示在这个控制台中。
3. Wireshark日志文件:如果你想将输出保存到文件中,可以使用Lua的`io`库来写入文件。例如,你可以将输出写入一个文本文件,然后在文件中查看结果。以下是一个示例:
-- 在插件中将输出写入文件
local output_file = io.open("output.txt", "w")
output_file:write("这是一个示例输出\n")
output_file:close()
在这个示例中,插件会将输出写入名为"output.txt"的文本文件中。你可以在文件管理器中查找并打开这个文件来查看输出。
代码写完后的操作:
将插件加载到wireshark中:
将.lua文件放入wireshark的根目录中,然后在 wireshark 的根目录下找到 “init.lua” 文件,在这个文件的开头修改”enable_lua = true“,请参考这段代码上面的注释,不同版本可能不一样。接下来在这个文件”init.lua“ 的最后将我们增加到wireshark根目录的Lua文件添加。
dofile (DATA_DIR.."***.lua")
使用插件:
“分析”——>“重新载入Lua插件”
或者重启wireshark