首页 > 其他分享 >课程设计——个人报告

课程设计——个人报告

时间:2023-12-17 12:11:53浏览次数:29  
标签:协议 课程设计 个人 报告 代码 插件 测试 数据包 Wireshark

个人报告(20211315邹雪梅):

a)列出自己的贡献

  • 代码运行报错修改,越界检查等辅助部分的编写,插件运行测试,参与插件设计,小组报告中负责:二、3列出测试目的、测试内容、测试结果,并对结果进行分析,三、设计特色部分的撰写。

b)列出设计中遇到的问题及解决方法

  • 问题1:协议字段解析错误
    解决方法:
    正确理解SSL协议,通过查阅资料和抓包实践分析了解每个字段的位置和含义。然后,检查代码,确保要从数据包中提取字段的值的与代码中对应。注:过程中可以使用Wireshark的内置协议解析器作为参考。
  • 问题2:插件无法正确关联到端口
    解决方法:
    检查DissectorTable.get和tcp_table:add调用是否正确。确保使用的端口号是正确的,有我们要解析的协议的数据包。
  • 问题3:插件对特定协议版本的支持不完全
    解决方法:
    在设计插件时,需要确保对协议的各个版本都有充分的理解和支持。如果发现对某个版本的支持不完全,需要查阅相关的协议文档,理解版本之间的差异,并在代码中添加对新版本的处理逻辑。(目前没有发现统一的解决方法,只能在遇到不支持的协议时添加新的符合新协议的代码)
  • 问题4:插件在处理特殊情况时出错
    解决方法:
    在某些包中可能出现解析出来的protocol名不是协议名而是一个字段值,这主要需要在设计插件时,需要考虑到协议的各种特殊情况,例如数据包的字段可能为空,或者数据包的长度可能超出预期等。对于这些特殊情况,需要在代码中添加相应的错误处理逻辑。以及在发现问题时新增解决对应问题的代码。
  • 问题5:插件的兼容性问题
    解决方法:我们组就出现了在其他两位成员电脑上能正确运行的代码到我这里报错的现象,尝试了两种解决方法,一开始是添加新的代码,使他兼容我的版本,另一种是将自己的wireshark换成和他们一样的版本。通过查阅资料我们了解搭配如果插件在某些版本的Wireshark上无法正常工作,可能是因为使用了一些不兼容的API。对于这种问题,需要查阅Wireshark的API文档,了解API的兼容性信息,并在代码中添加对不同版本Wireshark的兼容性处理。

c)列出调试过程中遇到的主要问题,并说明解决方法;

  • 问题1:在按照示例插件制作博客测试示例代码时出现报错(插件无法加载)

    解决方法:
    去查找了另外的相关博客,将插件代码转移到plugins文件夹而不是直接放在wireshark根目录,也不需要修改根目录相关文件代码,在wireshark页面选择“分析”、“重新载入插件”即可正常运行。
  • 问题2:代码报错range is our of bounds
    解决方法:
    在提取client_hello和content_type字段之前增加对tvb长度的检查,防止越界访问。
    在提取cipher_suite1、cipher_suite2和cipher_suite3字段之前增加对tvb长度的检查,防止越界访问。
  • 问题3:示例博客使用的xcap发送的包不能被wireshark抓取到
    解决方法:
    因为电脑之前创建过许多虚拟机,所以要找准正确的发包设备,在wireshark中合理使用筛选功能
  • 问题4:命令行中可以执行单条lua代码但是不能运行lua文件
    解决方法:
    首先要正确配置环境(尤其是Windows,Linux下直接下载一般就可以用)然后注意不要进入lua文件夹,直接运行相关命令即可。
  • 问题5:Lua语法错误
    解决方法:
    使用Lua语法检查工具,如luacheck,检查代码中的语法错误,并根据工具的反馈修正错误。

d)设计体会及收获

  • 1. 理解协议的重要性:在设计Wireshark插件时,对协议的理解是非常重要的。只有深入理解协议的结构和含义,才能编写出正确的解析代码。这需要阅读大量的协议文档,甚至需要阅读协议的源代码。
  • 2. 代码的可读性和可维护性:在编写代码时,需要注意代码的可读性和可维护性。这包括使用清晰的变量名,添加必要的注释,以及保持代码的结构清晰。这样不仅可以提高自己的开发效率,也可以方便其他人阅读和修改代码。我们组的代码属于可维护性较强的代码,这也使得我们在编写过程中增加新的协议变得很简单
  • 3. 错误处理的重要性:在处理网络数据包时,需要考虑到各种可能的错误情况,例如数据包的字段可能为空,或者数据包的长度可能超出预期等。对于这些错误情况,需要在代码中添加相应的错误处理逻辑。我们组出现了两次越界报错,最后通过添加代码得以使插件正常运行,这也提醒我们在编写插件时要注意错误处理
  • 4. 测试的重要性:在开发完插件后,需要进行充分的测试,确保插件的功能是正确的。这包括对插件的基本功能进行测试,也包括对插件的异常处理能力进行测试。只有经过充分的测试,才能确保插件在实际使用中的稳定性。我们组测试插件时发现在不同版本的wireshark,不同的数据包时,可能出现插件运行结果错误,所以多测试才能不断完善我们的插件。
  • 5. 持续学习和改进:在开发过程中,可能会遇到各种未知的问题。这需要我们有持续学习和改进的精神,不断查阅相关的文档和资料,不断尝试新的解决方案,不断优化和改进我们的代码。此次课程设计过程中我们不仅学习了老师给的参考资料,还到微信读书,知乎,CSDN有找了其他博客和书籍进行学习,遇到问题也及时积极查找解决方法,过程中也发现了和lua语言相关的一些好用的软件,比如如果插件处理数据包的速度太慢,需要优化代码。可以使用Lua的性能分析工具,如luaprofiler,找出性能瓶颈,并优化相关的代码。

e)参考资料

《自己动手实现lua:虚拟机、编译器和标准库》
《Wireshark网络分析从入门到实践》
于Lua语言的wireshark插件编写
Wireshark中lua脚本介绍
Wireshark插件开发
自己动手编写Wireshark Lua插件解析自定义协议
国密标准

标签:协议,课程设计,个人,报告,代码,插件,测试,数据包,Wireshark
From: https://www.cnblogs.com/summerjam-land/p/17908918.html

相关文章

  • numpy、scipy、pandas、matplotlib的读书报告
    一、基本函数的用法numpynumpy是Python中用于进行科学计算的基础模块,它提供了高效的多维数组对象ndarray,以及相关的数学运算和线性代数函数。numpy的主要功能有:创建和操作多维数组,如使用np.array(),np.arange(),np.zeros(),np.ones(),np.reshape()等函数。对数组进行索引和切片,如......
  • 个人报告20211303
    个人报告(20211303李天赐):a)列出自己的贡献:小组整体工作的推进和程序设计思路的确立,完成了前期代码结构搭建和初步撰写。b)列出设计中遇到的问题及解决方法(1)思路问题:--问题描述:在我们最开始设计程序的时候,先打算拿TLS协议中的三次握手协议的过程来练手,通过显示handshake这个信息......
  • 个人贡献
    一、个人工作简述1.实验前期选择开发工具,并完成需求分析;#电子公文系统二--需求分析2.编写初版需求规格说明书需求规格说明书;3.进行团队分工团队分工博客4.在实验过程中完成后端模块化功能的实现;后端开发,也称为“服务器端”开发,主要涉及构建软件系统的“后端......
  • 实验三-电子公文传输系统1-个人贡献
    实验三-电子公文传输系统1-个人贡献任务详情1简述你完成的工作2你们小组总共的代码行数,你贡献的代码行数?相关代码链接?3你们小组总共的文档数?你贡献的文档数?相关链接?主要完成的工作个人主要完成的工作是扮演了项目经理和产品经理的角色,具体工作如下:项目经理:根据项目......
  • 实验三-电子公文传输系统-个人贡献
    (一)简述你完成的工作我的工作主要是项目整体结构的搭建设计,和公文系统功能的实现一mvc模式和服务实现逻辑链设计在设计初期,我们确定好了分工和系统编写的基调。我认为电子公文系统中,可以采用MVC模式进行设计,得到了其他组员的支持,我们的分工也基本根据这个方式而来。其中我主要......
  • 课设报告
    北京电子科技学院《信息安全工程技术应用》课程设计报告基于lua的wireshark插件开发小组成员姓名:20211410周意凯20211417黄琪凯20211421文鑫河指导教师:娄嘉鹏提交时间:2023年12月10日一、设计方案及可行性分析该代码是一个用于解析TLS(TransportLayerSecurity)协议......
  • 实验三-电子公文传输系统1-个人贡献
    实验三-电子公文传输系统1-个人贡献1简述你完成的工作与组内成员相互配合协作,高效率完成任务参与组内文档的撰写工作负责了前端设计与数据库的建立2你们小组总共的代码行数,你贡献的代码行数?相关代码链接?总共代码行数为55352行,其中大部分是gitee上的代码,我们组总共贡献......
  • 电子公文传输系统个人贡献
    实验三-电子公文传输系统1-个人贡献1简述你完成的工作参与组内文档的撰写工作。参与后端设计的代码编写,数据库处理JDBC2你们小组总共的代码行数,你贡献的代码行数?相关代码链接?总共代码行数为55352行,其中大部分是gitee上的代码,我们组总共贡献了13139行代码,其中我负责的代......
  • 个人贡献
    个人贡献设置包括网络接口、程序之间的接口的代码代码链接:https://github.com/qiyulin2003/506ilou/tree/main/moehu-backend/moehu-backend/src/main/java/com/moehu/back/confighttps://github.com/qiyulin2003/506ilou/blob/main/html/dzgw/mygw.html贡献代码863行总代码......
  • 阿贝云免费云服务器个人评价
    阿贝云是一家提供免费云服务器的云服务提供商,下面是对其性能的评价。首先,阿贝云的免费云服务器性能表现良好。它提供了稳定可靠的服务器运行环境,可以满足简单的网站部署、数据存储和应用开发等基本需求。免费云服务器配置合理,RAM和CPU资源分配足够,可以支持一般的应用程序运行。......