基于wireshark插件的国密标准检测工具的设计与实现

基于lua语言的wireshark插件开发

lua运算符

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代码分为三部分:

  1. 创建Proto对象
  2. 创建dissector方法
  3. 注册解析器

 

在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

posted @ 2023-11-19 11:36  周意凯  阅读(89)  评论(0编辑  收藏  举报