毕业设计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月前
|
NoSQL 网络协议 Linux
Redis的实现一:c、c++的网络通信编程技术,先实现server和client的通信
本文介绍了使用C/C++进行网络通信编程的基础知识,包括创建socket、设置套接字选项、绑定地址、监听连接以及循环接受和处理客户端请求的基本步骤。
84 6
|
6月前
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
177 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
5月前
|
安全 网络安全
Kali渗透测试:使用Armitage扫描网络
Kali渗透测试:使用Armitage扫描网络
101 3
|
4月前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
292 5
|
5月前
|
Web App开发 JSON 网络协议
|
5月前
|
存储 监控 NoSQL
Redis的实现二: c、c++的网络通信编程技术,让服务器处理多个client
本文讨论了在C/C++中实现服务器处理多个客户端的技术,重点介绍了事件循环和非阻塞IO的概念,以及如何在Linux上使用epoll来高效地监控和管理多个文件描述符。
55 0
|
5月前
|
安全 网络协议 IDE
使用Python编写网络扫描程序
使用Python编写网络扫描程序
80 0
|
6月前
|
网络协议 Linux C++
超级好用的C++实用库之网络
超级好用的C++实用库之网络
95 0
|
7月前
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
281 2
|
7月前
|
监控 安全 网络协议
这10款网络扫描工具,是个网工,都想全部安装!
这10款网络扫描工具,是个网工,都想全部安装!
622 1

热门文章

最新文章