毕业设计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


相关文章
|
2月前
|
网络协议 C++
C++ Qt开发:QTcpSocket网络通信组件
`QTcpSocket`和`QTcpServer`是Qt中用于实现基于TCP(Transmission Control Protocol)通信的两个关键类。TCP是一种面向连接的协议,它提供可靠的、双向的、面向字节流的通信。这两个类允许Qt应用程序在网络上建立客户端和服务器之间的连接。Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QTcpSocket`组件实现基于TCP的网络通信功能。
68 8
C++ Qt开发:QTcpSocket网络通信组件
|
2月前
|
存储 网络协议 Ubuntu
【C++网络编程】Socket基础:网络通讯程序入门级教程
【C++网络编程】Socket基础:网络通讯程序入门级教程
71 7
|
2月前
|
消息中间件 网络协议 C++
C/C++网络编程基础知识超详细讲解第三部分(系统性学习day13)
C/C++网络编程基础知识超详细讲解第三部分(系统性学习day13)
|
2月前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
129 7
|
3天前
|
网络协议 安全 Shell
`nmap`是一个开源的网络扫描工具,用于发现网络上的设备和服务。Python的`python-nmap`库允许我们在Python脚本中直接使用`nmap`的功能。
`nmap`是一个开源的网络扫描工具,用于发现网络上的设备和服务。Python的`python-nmap`库允许我们在Python脚本中直接使用`nmap`的功能。
27 7
|
5天前
|
SQL 安全 网络协议
网络扫描与渗透测试基础
【7月更文挑战第12天】网络扫描与渗透测试是保障网络安全的重要手段,通过模拟黑客攻击的方式,发现潜在的安全漏洞,并提供修复建议,为系统安全保驾护航。在网络安全日益重要的今天,掌握网络扫描与渗透测试技术对于企业和组织来说至关重要。希望本文能够为读者提供有益的参考和借鉴。
|
16天前
|
存储 安全 Linux
网络请求的高效处理:C++ libmicrohttpd库详解
网络请求的高效处理:C++ libmicrohttpd库详解
|
2月前
|
Serverless C++
C++多态性、虚函数、纯虚函数和抽象类知识网络构造
C++多态性、虚函数、纯虚函数和抽象类知识网络构造
|
2月前
|
数据采集 API 数据安全/隐私保护
畅游网络:构建C++网络爬虫的指南
本文介绍如何使用C++和cpprestsdk库构建高效网络爬虫,以抓取知乎热点信息。通过亿牛云爬虫代理服务解决IP限制问题,利用多线程提升数据采集速度。示例代码展示如何配置代理、发送HTTP请求及处理响应,实现多线程抓取。注意替换有效代理服务器参数,并处理异常。
畅游网络:构建C++网络爬虫的指南
|
2月前
|
弹性计算 运维 Shell
自动化网络扫描工具发现活跃主机
【4月更文挑战第30天】
23 0