首页 > 其他分享 >课程设计进展第二周

课程设计进展第二周

时间:2023-11-26 22:59:29浏览次数:29  
标签:课程设计 进展 Data add 第二周 Msg foo Type tvb

本周我们共同学习了lua语言与编写wireshark插件的知识,并且按照微信读书上的教程,编写了一个可以识别foo报文租的小插件。

一、lua语言的学习

local foo=Proto("foo","Foo Protocol")
Trans_ID=ProtoField.uint16("foo.ID","ID")
Msg_Type=ProtoField.uint16("foo.Type","Type")
Msg_Data=ProtoField.uint32("foo.Data","Data")
foo.fields={Trans_ID,Msg_Type,Msg_Data}
function foo.dissector(tvb,pinfo,tree)    
    pinfo.cols.protocol="foo"
    local subtree=tree:add(foo,tvb(0))
    subtree:add(Trans_ID,tvb(0, 2))
    subtree:add(Msg_Type,tvb(2, 2))
    subtree:add(Msg_Data,tvb(4, 4))
end
DissectorTable.get("tcp.port"):add(10001,foo)

1.协议定义:

local foo = Proto("foo", "Foo Protocol")

此行定义了一个名为"foo"的新协议,并在Wireshark中显示为"Foo Protocol"。

2.协议字段:

Trans_ID = ProtoField.uint16("foo.ID", "ID")
Msg_Type = ProtoField.uint16("foo.Type", "Type")
Msg_Data = ProtoField.uint32("foo.Data", "Data")

这些行定义了三个协议字段(Trans_IDMsg_TypeMsg_Data),并指定了它们的类型和名称。

3.协议字段分配:

foo.fields = {Trans_ID, Msg_Type, Msg_Data}

此行将先前定义的字段分配给协议foo

4.解析器函数:

function foo.dissector(tvb, pinfo, tree)
    pinfo.cols.protocol = "foo"
    local subtree = tree:add(foo, tvb(0))
    subtree:add(Trans_ID, tvb(0, 2))
    subtree:add(Msg_Type, tvb(2, 2))
    subtree:add(Msg_Data, tvb(4, 4))
end

此函数是协议foo的解析器函数。它将协议列(pinfo.cols.protocol)设置为"foo",然后在协议树中添加子树,并添加字段的值到相应的位置。

5.端口注册:

DissectorTable.get("tcp.port"):add(10001, foo)

此行将协议foo注册到TCP端口10001,以便Wireshark能够使用此解析器来解析在该端口上捕获的数据。

二、wleshark插件的撰写

-- 定义新协议
local course_protocol = Proto("CourseDesign", "课程设计: Seq=0即通信建立")

-- 定义协议字段
local seq_number = ProtoField.uint32("CourseDesign.SeqNumber", "Sequence Number")

-- 将字段添加到协议中
course_protocol.fields = {seq_number}

-- 定义协议解析函数
function course_protocol.dissector(tvb, pinfo, tree)
    pinfo.cols.protocol = "CourseDesign"

    local subtree = tree:add(course_protocol, tvb(0))

    -- 从TCP头中提取Seq字段
    local seq_value = tvb(0, 4):uint()

    -- 添加Seq字段到协议树中
    subtree:add(seq_number, tvb(0, 4)):set_text("Seq Number: " .. seq_value)

    -- 如果Seq等于0,则显示通信建立的提示信息
    if seq_value == 0 then
        pinfo.cols.info:set("Communication Establishment: Seq=0")
    end
end

-- 注册协议
local tcp_port_table = DissectorTable.get("tcp.port")
tcp_port_table:add(0, course_protocol)

 

这个代码是为了检测tcp握手协议中的第一次握手,但存在一些小问题,后续继续修改。

三、foo协议的撰写

 

本功能是通过一中的代码实现,能够定义一个foo协议,能抓取foo包。

四、总结

在本周的学习中,我们深入探讨了Lua语言和Wireshark插件编写的知识,通过编写一个能够识别foo报文的插件,掌握了协议定义、字段设置和解析器函数的编写。同时,通过另一个例子学到了提取TCP头中的Seq字段的方法,实现了对通信建立的提示信息的显示。这次学习为我们打开了网络协议分析的大门,为更深入的探索提供了坚实的基础。

 

标签:课程设计,进展,Data,add,第二周,Msg,foo,Type,tvb
From: https://www.cnblogs.com/liTCabcAbc/p/17858125.html

相关文章

  • 进展
    ......
  • 第二周进展
    本周计划完成自己的部分实际完成情况还在调试代码,目前代码运行后没有预期效果。未完成计划的原因:对lua语言的学习不足,对wireshark抓包不够熟悉。改进:在接下来的一周中,加强对lua的学习以及熟悉wireshark的使用,对待吗进行改善,调试和运行。代码:do--创建一个新的协......
  • 第二周进展
    本周计划完成任务本人所负责的不可否认性模块全部代码的初步编写本周实际完成情况通过解析数据,获取证书信息相关代码localversion_str=string.match(_VERSION,"%d+[.]%d*")localversion_num=version_strandtonumber(version_str)or5.1localbit=(version_num......
  • 第二周进展
    Wiresharklua插件开发第二周进展本周在Wiresharklua插件开发方面取得了以下进展:1.Lua简介Lua是一种轻量级的脚本语言,它不需要编译器等额外的工具,可以直接进行解释执行。Lua的基本语法可以参考官网或者菜鸟教程。Wireshark内置对Lua脚本的支持,无需额外的配置,使用起来非常方便......
  • 第二周进展
    本周计划:完成自己的部分遇到了许多的问题,比如插件载入后每次报错: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解决方案:通过反复阅读,探寻不同密码表之间的规律,可以有......