首页 > 其他分享 >第二周进展

第二周进展

时间:2023-11-26 21:27:13浏览次数:32  
标签:解析器 进展 -- local Lua 第二周 buf Wireshark

Wireshark lua插件开发第二周进展

本周在Wireshark lua插件开发方面取得了以下进展:

1. Lua简介

Lua是一种轻量级的脚本语言,它不需要编译器等额外的工具,可以直接进行解释执行。Lua的基本语法可以参考官网或者菜鸟教程。Wireshark内置对Lua脚本的支持,无需额外的配置,使用起来非常方便。如果需要更详细的文档资料,可以查阅Wireshark Developer's Guide中的第10章和第11章,这些章节详细介绍了Lua的支持。

2. Wireshark Lua插件基本结构

Wireshark Lua插件主要由两个重要的概念组成:Dissector(解剖器)和DissectorTable(解剖器表):

  • Dissector(解剖器)用于解析特定协议的类,我们需要在这部分进行编写。
  • DissectorTable(解剖器表)用于组织不同的解析器,使得Wireshark能够根据协议选择合适的解析器。

3. 编写Lua插件实例

以下是本周编写的一个简单的Lua脚本示例,并在Wireshark中启用:

do
    -- 定义协议名称和描述
    local myProtocol = Proto("MyProtocol", "Custom Protocol")

    -- 定义协议字段
    local f_field1 = ProtoField.uint8("MyProtocol.field1", "Field 1", base.HEX)
    local f_field2 = ProtoField.uint16("MyProtocol.field2", "Field 2", base.HEX)

    -- 将字段添加到协议
    myProtocol.fields = {f_field1, f_field2}

    -- 获取data解析器
    local data_dissector = Dissector.get("data")

    -- 解析器函数
    local function myProtocol_dissector(buf, pkt, root)
        local buf_len = buf:len()

        -- 根据协议报文格式判断是否为自定义协议
        if buf_len < 3 or buf(0, 1):uint() ~= 0xAA then
            -- 不是自定义协议,调用data解析器
            return data_dissector:call(buf, pkt, root)
        end

        -- 提取字段值
        local field1_value = buf(1, 1):uint()
        local field2_value = buf(2, 2):uint()

        -- 在Packet Details窗口显示协议信息
        local tree = root:add(myProtocol, buf)
        tree:add(f_field1, buf(1, 1)):append_text(", Field 1: " .. field1_value)
        tree:add(f_field2, buf(2, 2)):append_text(", Field 2: " .. field2_value)

        -- 设置Packet List窗口的协议列
        pkt.cols.protocol = "MyProtocol"

        -- 返回true表示成功解析
        return true
    end

    -- 将解析器函数注册到协议解析器
    function myProtocol.dissector(buf, pkt, root)
        myProtocol_dissector(buf, pkt, root)
    end

    -- 将协议解析器添加到udp.port解析器表,监听特定端口
    local udp_table = DissectorTable.get("udp.port")
    udp_table:add(12345, myProtocol)
end

4. 启用Lua插件

为了启用Lua插件,按照以下步骤进行操作:

  • 将以上代码保存为一个lua文件,例如my_protocol.lua
  • 打开Wireshark,选择菜单【文件】-【全局配置文件夹】,找到init.lua文件。
  • init.lua文件末尾添加以下内容:dofile("path/to/my_protocol.lua"),将路径替换为实际文件路径。
  • 确认你的Wireshark版本支持Lua插件(Windows版本默认应该启用了支持)。可以通过【帮助】-【关于】窗口来确认

标签:解析器,进展,--,local,Lua,第二周,buf,Wireshark
From: https://www.cnblogs.com/xuyuanqi/p/17857970.html

相关文章

  • 第二周进展
    本周计划:完成自己的部分遇到了许多的问题,比如插件载入后每次报错:Lua:Errorduringloading:C:\ProgramFiles\Wireshark\plugins\RSA.lua:42:badargument#1to'add'(DissectorTable_add:invalidintegerorrange)stacktraceback: [C]:infunction'add' C:\Prog......
  • Wireshark lua插件开发第二周进展
    1.Lua简介Lua是一种轻量级的脚本语言,解释执行,不需要编译器之类的。Lua的基本语法可以参考官网或者菜鸟教程。Wireshark内置了对Lua脚本的支持,可以直接编写Lua脚本,无需配置额外的环境,使用起来还是非常方便的。[WiresharkDeveloper'sGuide]里的第10章和第11章都是关于Lua......
  • 2023-2024-1 20232428 《网络空间安全导论》第二周学习总结
    1.教材学习内容总结2.基于AI的学习......
  • 2023-2024-1 20232315 《网络空间安全导论》第二周学习
      一、 我最近初步了解了密码学基础,了解了其起源、初步发展与应用、包含的主要内容以及在当下的情况,下面是大概的思维导图: 二、下面是我学习后的问题:1、信息加密与信息隐藏有何本质区别?解决方法:问AI答案: 问题2:当今密码学面临哪些挑战,该如何迎接这些挑战?答案:......
  • 军工物联网的进展和困难
    军工物联网的进展和困难可以从以下几个方面来讨论:进展:技术发展:物联网技术不断发展,已经可以实现物物相连,实时监测,信息共享等功能,这为军工物联网的发展提供了技术基础。军事应用:军工物联网已经在军事领域得到了一定的应用,例如战场环境监测、武器装备智能化、后勤保障管理等。这些应用......
  • 《2023-2024-1 20232415 《网络》第二周学习总结》
      本周的网络空间安全课程的学习主要围绕密码科学技术展开。通过学习与探究,我了解了密码科学技术的基本原理,应用方式以及发展前景。 教材学习中的问题:问题1:不同密码表对文字的加密方式各不相同,较为复杂,难以理解。问题1解决方案:通过反复阅读,探寻不同密码表之间的规律,可以有......
  • 2023-2024-1 20232327《网络空间安全导论》第二周学习总结
    2023-2024-120232327《网络空间安全导论》第二周学习总结教材学习内容总结1.密码学历史悠久,主要分为古典密码、机械密码和线代密码;2.密码学研究主要有密码分析,密码理论,密码工程与应用以及密码管理;3.密码体制的分类:单钥密码体制和双钥密码体制;4.密码分析方法有穷举攻击法、......
  • 第二周
    Shell编程语言学习了Shell编程的基础知识,包括命令行参数、变量、条件判断、循环结构等。并且通过编写脚本演示了Shell脚本的实际应用。文件和系统管理学习了如何在Linux系统中创建、复制、移动、重命名、删除等文件和目录,以及如何使用chmod命令为文件添加权限。同时,我们还学习了......
  • 网空第二周
    (2023-2024-1)(20232410)《网络》第2周学习总结教材学习内容总结密码学基本概念和主要研究方向教材学习中的问题和解决过程问题:为何说一次一密在理论上是安全的,在实际应用中存在什么问题问题解决方案:运用ai提问回答参考资料《网络空间安全导论》网络空间安全导论书单......
  • 2023-2024-1 20232407 《网络》 第二周学习总结
    教材学习内容总结教材学习中的问题和解决过程问题1:密码学基础中的对称加密和非对称加密有什么区别?它们分别适用于什么场景?解决方案:询问GPT问题2:什么是数字签名?它是如何保证消息的完整性和真实性的?解决方案:询问GPT基于AI的学习思考在密码学基础中,对称加密和非对称加密是......