毕业设计So Easy:基于C++实现网络扫描器

简介: 很多计算机专业大学生经常和我交流:毕业设计没思路、不会做、论文不会写、太难了......针对这些问题,决定分享一些软、硬件项目的设计思路和实施方法,希望可以帮助大家,也祝愿各位学子,顺利毕业!

很多计算机专业大学生经常和我交流:毕业设计没思路、不会做、论文不会写、太难了......


针对这些问题,决定分享一些软、硬件项目的设计思路和实施方法,希望可以帮助大家,也祝愿各位学子,顺利毕业!


2021052512212232[9].png


项目专栏:7天搞定毕业设计和论文


对计算机技术感兴趣的小伙伴请关注公众号:美男子玩编程,公众号优先推送最新技术博文,创作不易,请各位朋友多多点赞、收藏、关注支持~    


目前主流的网络扫描器,大多数采用的是命令行界面,用户使用的门槛相对较高,可视化的图形界面旨在提供给用户一个友好的使用环境,这种用户— 界面的体系结构深受广大喜爱。它不需要用户去熟记过多的参数,只需要填入相应的关键信息,通过鼠标点击选择即可完成,大大降低了操作使用的难度。

1、系统目标

本设计的最终目标是打造一个具有多种扫描功能的网络扫描器。该扫描器具有以下功能:

可视化的图形界面,旨在为用户提供友好的使用环境。

实现一些基本的扫描任务,如读取到目的主机的软硬件信息,开放的端口等等。

帮助用户去自动生成符合用户心理的扫描结果报告,并将扫描结果以文件的形式展现出了。

其对应的整体层次设计图如下图所示:

50e3ae3d0fbb48fb9046f9d1207fce7d.png


项目工程资源下载请参见:https://www.syjshare.com/res/40V489VZ


2、系统原理

管理员站在攻击者的角度去看网络扫描器的工作原理,一切都变得清晰易懂。作为一个攻击者,管理员会考虑首先去搜索网络上存活的主机,选择其中某一些主机作为管理员攻击的目标,管理员再通过向目标主机发送数据包,通过分析反馈的数据包,寻找可能存在的安全隐患,通过利用这些安全隐患去模拟尝试攻击,找到修复该安全隐患的解决方案,从而达到修复漏洞的目的。网络扫描器的工作原理如下图所示:

0be2a08913db4c969422ff6606cdd73d.png


3、系统设计

3.1、主机扫描模块

主机扫描就是扫描网络中可能存在的主机,主要是通过向特定的主机或者目的 IP 发送构造的 ICMP 协议包来确定目标网络上的主机是否可达。 其流程图如下图 所示:

3f6ce2dbc0e04a2182590b685fa464a2.png


3.2、端口扫描模块

对某一 IP 段目标主机 IP 的一段端口逐个连接,通过发送数据包对目标主机进行通信,根据反馈回来的数据包信息判断该主机的开放状态,根据其开放端口所对应的主机服务去有针对性的发起相关的服务缺陷攻击。其流程图如下图所示:

efe88196379a4df29eb0fdcb896581aa.png


3.3、NetBIOS 扫描模块

对网上基本输入输出系统 NetBIOS 协议而言,它作为应用层上的一种特殊的协议,它常常被用来管理局域网上的主机,通过该协议的相关约定,管理员可以很方便的读取到局域网上相关目标主机可拥有的相关属性的详细信息。其流程图如下图所示:

d50024dce72a47b98b2cd2e2d3f84a9f.png


3.4、SNMP扫描模块  

简单网络管理协议 SNMP 是对智能终端设备做简单管理,管理员可以利用该协议的相关约定去获取支持该协议的各种设备的详细的信息。其流程图如下图所示:


fa1b79354f7041cc895ffa4d5120ba79.png


3.5、弱密码扫描模块

弱密码扫描是逐个对目标主机的用户名和密码进行扫描,依次穷举遍历所有的用户名和密码的组合,用遍历生成的密码去逐次尝试验证。通过密码验证系统给出的正确或错误的反馈来判断是否成功获取到了用户的信息。其流程图如下图所示:

c1ce5c18c5f74c7cbba0219c7d4c66a8.png


3.6、嗅探器扫描模块

嗅探器扫描是对所接收到的所有数据包进行实时监听,然后依次与监测关键字进行匹配,筛选出那些关键信息。其流程图如下图所示:

80644fad0f6f450cad50e715b31f1981.png


3.7、DOS攻击模块

DOS 攻击是对目标 IP 的特定端口采用指定的线程数去发送大量的数据和连接请求,不断的消耗目标主机的资源,从而造成目标主机连接资源耗尽,导致其它主机无法使用这些连接资源。其流程图如下图 所示:

e7cf5b72c1614d87bbfdd0e60853bc55.png


3.8、注入检测模块

由于程序员及软件设计师在编写程序或设计相关软件模型的过程中出现了设计缺陷,导致非法用户可以通过构造一系列特殊的字符串去拼接到软件的缺陷部分,从而导致非授权用户可以绕过系统验证而读取到数据库中的隐私数据,从而造成信息的泄露,造成巨大的损失。其流程图如下图 所示:

6904bf2ad71d4685ab6a9d7df91bd7db.png


3.9、报告生成模块

报告生成是网络扫描器所提供的任意多种扫描功能对目标 IP 的扫描结果进行汇总,最终以报告的形式打印出来,提供了 html 、 txt 和 xml 三种打印格式。其流程图如下图 所示:

c08b6c881fc64eda8116f0fde1de6b08.png


4、系统实现

4.1、工作流图

网络扫描器主要工作流程图如下图所示:


1f4b7687796d47d6bea796ddcac87ec9.png


4.2、界面设计

4.2.1、主界面

网络扫描器主界面如下图 所示:

b6287e23a7634eb3afa331889f8602b5.png


4.2.2、子界面

网络扫描器共实现了九个功能模块,下面管理员分别看看这九个功能模块的子界面。

下图 的是主机扫描功能模块的界面:

2708fce5e6f544b2a4519ec563ae7d93.png


下图 展示的是端口扫描功能模块的界面:

457f093e60644717891a50f60d400d21.png


下图 展示的是 NetBIOS 扫描功能模块的界面:

e088cf2498914575b980ec0fda0bc8ef.png


下图 展示的是 SNMP 扫描功能模块的界面:

96cf948eddbc4b659d8bfc2c41085b07.png


下图 展示的是弱密码扫描功能模块的界面:

495109c39b1040d0af441c78a9d14666.png


下图 展示的是嗅探器扫描功能模块的界面:

d2b066e888314b438eb9a4a995542fc0.png


下图 展示的是 DOS 攻击功能模块的界面:

f369301fa8044583bb8bee146286bc60.png


下图 展示的是注入检测功能模块的界面:

4db20bca7dd14e308143e4547e677470.png


下图 展示的是报告生成功能模块的界面:

94e8c153eb1d4dc087d7e789a44572c4.png


项目工程资源下载请参见:https://www.syjshare.com/res/40V489VZ


相关文章
|
5天前
|
存储 网络协议 Ubuntu
【C++网络编程】Socket基础:网络通讯程序入门级教程
【C++网络编程】Socket基础:网络通讯程序入门级教程
56 7
|
5天前
|
网络协议 C++
C++ Qt开发:QTcpSocket网络通信组件
`QTcpSocket`和`QTcpServer`是Qt中用于实现基于TCP(Transmission Control Protocol)通信的两个关键类。TCP是一种面向连接的协议,它提供可靠的、双向的、面向字节流的通信。这两个类允许Qt应用程序在网络上建立客户端和服务器之间的连接。Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QTcpSocket`组件实现基于TCP的网络通信功能。
49 8
C++ Qt开发:QTcpSocket网络通信组件
|
5天前
|
消息中间件 网络协议 C++
C/C++网络编程基础知识超详细讲解第三部分(系统性学习day13)
C/C++网络编程基础知识超详细讲解第三部分(系统性学习day13)
|
5天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
67 7
|
5天前
|
安全 Linux 网络安全
【专栏】Linux 网络扫描工具:一起开始nmap的探索之旅吧!
【4月更文挑战第28天】nmap, 开源网络扫描工具,用于探测主机、网络信息,包括开放端口、服务类型、OS等。本文分三部分介绍:1) nmap简介与基本原理;2) 使用方法和高级技巧,如脚本扩展;3) 实际应用,如网络安全评估、系统管理和渗透测试。学习nmap需注意合规性,持续探索新技巧,以提升网络管理与安全能力。一起开始nmap的探索之旅吧!
|
5天前
|
安全 测试技术 网络安全
基于计算机网络的毕业设计 - 实现高效网络服务与安全通信
本毕业设计旨在利用计算机网络技术设计并实现一个综合性系统,以解决特定领域的问题或提供特定的服务。设计包括网络通信协议的优化、网络安全机制的设计、数据传输与处理的优化以及用户界面设计等方面。通过本设计,旨在提高学生对计算机网络及相关技术的理解和应用能力,并为用户提供高效、可靠的网络服务。
|
5天前
|
数据采集 API 数据安全/隐私保护
畅游网络:构建C++网络爬虫的指南
本文介绍如何使用C++和cpprestsdk库构建高效网络爬虫,以抓取知乎热点信息。通过亿牛云爬虫代理服务解决IP限制问题,利用多线程提升数据采集速度。示例代码展示如何配置代理、发送HTTP请求及处理响应,实现多线程抓取。注意替换有效代理服务器参数,并处理异常。
畅游网络:构建C++网络爬虫的指南
|
5天前
|
运维 监控 算法
【C/C++ 实用工具】网络监控工具一览
【C/C++ 实用工具】网络监控工具一览
32 0
|
5天前
|
网络协议 Linux C++
Linux C/C++ 网络编程中地址格式转换(inet_pton和inet_ntop函数)
Linux C/C++ 网络编程中地址格式转换(inet_pton和inet_ntop函数)
35 0
|
5天前
|
存储 网络安全 C++
C++ Qt开发:QUdpSocket网络通信组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QUdpSocket`组件实现基于UDP的网络通信功能。与`QTcpSocket`组件功能类似,`QUdpSocket`组件是 Qt 中用于实现用户数据报协议(UDP,User Datagram Protocol)通信的类。UDP 是一种无连接的、不可靠的数据传输协议,它不保证数据包的顺序和可靠性,但具有低延迟和简单的特点。
22 0
C++ Qt开发:QUdpSocket网络通信组件
http://www.vxiaotou.com