




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
杭州电子科技大学软件学院杭州电子科技大学软件学院 网络工程试验报告网络工程试验报告 端口扫描报告端口扫描报告 09109146 王子龙王子龙 1 端口及端口扫描技术简介端口及端口扫描技术简介 2 2 对现有端口扫描工具程序的理解对现有端口扫描工具程序的理解 2 主界面 3 3 核心代码核心代码 6 4 个人总结个人总结 13 1 端口及端口扫描技术简介端口及端口扫描技术简介 根据提供服务类型的不同 端口分为两种 一种是 TCP 端口 一种是 UDP 端口 计算 机之间相互通信的时候 分为两种方式 一种是发送信息以后 可以确认信息是否到达 也就是有应答的方式 这种方式大多采用 TCP 协议 一种是发送以后就不管了 不去确认 信息是否到达 这种方式大多采用 UDP 协议 对应这两种协议的服务提供的端口 也就分 为 TCP 端口和 UDP 端口 一台拥有 IP 地址的主机可以提供许多服务 比如 Web 服务 FTP 服务 SMTP 服务等 这些服务完全可以通过 1 个 IP 地址来实现 主机不只是靠 IP 地址来区分网络服务 因为 IP 地址与网络服务的关系是一对多的关系 实际上是通过 IP 地址 端口号 来区分不同 的服务的 一个端口就是一个潜在的通信通道 也就是一个入侵通道 对目标计算机进行端口扫 描 能得到许多有用的信息 进行扫描的方法很多 可以是手工进行扫描 也可以用端口 扫描软件进行 在手工进行扫描时 需要熟悉各种命令 对命令执行后的输出进行分析 用扫描软件 进行扫描时 许多扫描器软件都有分析数据的功能 通过端口扫描 可以得到许多有用的信息 从而发现系统的安全漏洞 2 对现有端口扫描工具程序的理解对现有端口扫描工具程序的理解 该程序是有 C 编写的 C 是一种使用非常广泛的计算机编程语言 C 是一种静 态数据类型检查的 支持多重编程范式的通用程序设计语言 它支持过程化程序设计 数 据抽象 面向对象程序设计 制作图标等等泛型程序设计等多种程序设计风格 该程序能够扫描主机 IP 的某一个端口 或者是扫描该主机 IP 某一范围内的端口 并 且提供多次扫描功能 如果要扫描的端口很多 在扫描过程中可以暂停扫描 扫描结果在 界面的下方显示 主要显示内容有 IP 地址 端口号 端口状态 连接次数及备注 主界面主界面 本机 ip 地址为 169 254 103 168 用端口扫描工具扫描 135 端口 135 端口处于打开状态 扫描处于某一范围内的端口号 比如 80 90 任务进展将在界面下方显示 并且提示当前扫描哪一个端口及尝试扫描次数 最终的扫描结果可以通过 txt 文本导出 3 核心代码核心代码 ifdef DEBUG define new DEBUG NEW undef THIS FILE static char THIS FILE FILE endif CPortScanView IMPLEMENT DYNCREATE CPortScanView CFormView BEGIN MESSAGE MAP CPortScanView CFormView AFX MSG MAP CPortScanView ON WM CTLCOLOR ON WM SHOWWINDOW ON BN CLICKED IDC RADIO SINGLE OnRadioSingle ON BN CLICKED IDC RADIO RANGE OnRadioRange ON BN CLICKED IDC BUTTON SCAN OnButtonScan ON BN CLICKED IDC BUTTON STOP OnButtonStop ON COMMAND ID FILE SAVE OnFileSave AFX MSG MAP END MESSAGE MAP CPortScanView construction destruction CPortScanView CPortScanView CFormView CPortScanView IDD AFX DATA INIT CPortScanView AFX DATA INIT TODO add construction code here m pBrush new CBrush ASSERT m pBrush m clrBk RGB 0 x00 0 x00 0 x77 m clrText RGB 0 xff 0 xff 0 x00 m pBrush CreateSolidBrush m clrBk m pColumns new CStringList ASSERT m pColumns m bSinglePort TRUE m nMaxAttempts 1 default value This value has been set on the window m pStatusList new CPtrList ASSERT m pStatusList CPortScanView CPortScanView if m pStatusList First Empty the port status list POSITION p m pStatusList GetHeadPosition while p POSITION temp p DATA pNode DATA m pStatusList GetNext p m pStatusList RemoveAt temp if pNode delete pNode Then remove it from heap delete m pStatusList if m pBrush delete m pBrush void CPortScanView DoDataExchange CDataExchange pDX CFormView DoDataExchange pDX AFX DATA MAP CPortScanView DDX Control pDX IDC PROGRESS m cProgress DDX Control pDX IDC EDIT ATTEMPTS m cAttempts DDX Control pDX IDC BUTTON STOP m cBtnStop DDX Control pDX IDC LIST RESULT m cResult DDX Control pDX IDC BUTTON SCAN m cBtnScan DDX Control pDX IDC IP ADDRESS m cIP DDX Control pDX IDC EDIT SINGLE PORT TO m cPortTo DDX Control pDX IDC EDIT SINGLE PORT FROM m cPortFrom DDX Control pDX IDC EDIT SINGLE PORT m cSinglePort AFX DATA MAP BOOL CPortScanView PreCreateWindow CREATESTRUCT void CPortScanView OnInitialUpdate CFormView OnInitialUpdate GetParentFrame RecalcLayout ResizeParentToFit FALSE ResizeParentToFit ShowHeaders CheckRadioButton IDC RADIO SINGLE IDC RA DIO RANGE IDC RADIO SINGLE m cSinglePort EnableWindow m cPortFrom EnableWindow FALSE m cPortTo EnableWindow FALSE m parent CMainFrame GetParent ASSERT m parent m cBtnStop EnableWindow FALSE m cAttempts SetWindowText T 1 CPortScanView diagnostics ifdef DEBUG void CPortScanView AssertValid const CFormView AssertValid void CPortScanView Dump CDumpContext CPortScanDoc CPortScanView GetDocument non debug version is inline ASSERT m pDocument IsKindOf RUNTIME CLASS CPortScanDoc return CPortScanDoc m pDocument endif DEBUG CPortScanView message handlers HBRUSH CPortScanView OnCtlColor CDC pDC CWnd pWnd UINT nCtlColor HBRUSH hbr CFormView OnCtlColor pDC pWnd nCtlColor break statement must be ignored switch nCtlColor case CTLCOLOR BTN case CTLCOLOR STATIC pDC SetBkColor m clrBk pDC SetTextColor m clrText case CTLCOLOR DLG return static cast m pBrush GetSafeHandle TODO Return a different brush if the default is not desired return CFormView OnCtlColor pDC pWnd nCtlColor BOOL CPortScanView AddColumn LPCTSTR strItem int nItem int nSubItem int nMask int nFmt LV COLUMN lvc lvc mask nMask lvc fmt nFmt lvc pszText LPTSTR strItem lvc cx m cResult GetStringWidth lvc pszText 25 if nMask else lvc iSubItem nItem return m cResult InsertColumn nItem BOOL CPortScanView AddItem int nItem int nSubItem LPCTSTR strItem int nImageIndex LV ITEM lvItem lvItem mask LVIF TEXT lvItem iItem nItem lvItem iSubItem nSubItem lvItem pszText LPTSTR strItem if nImageIndex 1 lvItem mask LVIF IMAGE lvItem iImage LVIF IMAGE if nSubItem 0 return m cResult InsertItem return m cResult SetItem void CPortScanView AddHeader LPTSTR hdr if m pColumns m pColumns AddTail hdr void CPortScanView ShowHeaders int nIndex 0 POSITION pos m pColumns GetHeadPosition while pos CString hdr CString m pColumns GetNext pos AddColumn hdr nIndex void CPortScanView OnShowWindow BOOL bShow UINT nStatus CFormView OnShowWindow bShow nStatus AddHeader T IP 地址 AddHeader T 端口号 AddHeader T 端口状态 AddHeader T 连接次数 AddHeader T 备注 void CPortScanView OnRadioSingle m bSinglePort TRUE m cSinglePort EnableWindow m cPortFrom EnableWindow FALSE m cPortTo EnableWindow FALSE void CPortScanView OnRadioRange m bSinglePort FALSE m cSinglePort EnableWindow FALSE m cPortFrom EnableWindow m cPortTo EnableWindow m cBtnStop EnableWindow FALSE 开始扫描按钮处理程序 void CPortScanView OnButtonScan CString btnTxt IP UINT nSinglePort BYTE f1 f2 f3 f4 TCHAR temp 10 0 m cProgress SetPos 0 m cResult DeleteAllItems 清空列表框 POSITION p m pStatusList GetHeadPosition while p POSITION temp p DATA pNode DATA m pStatusList GetNext p m pStatusList RemoveAt temp 循环删除 if pNode delete pNode 验证 IP 地址是否为空 if m cIP IsBlank MessageBox T 请输入 IP 地址 T Error MB OK MB ICONEXCLAMATION return 验证 IP 地址是否正确 if m cIP GetAddress f1 f2 f3 f4 4 MessageBox T 请确认 IP 地址 T Invalid IP address MB OK MB ICONEXCLAMATION return 进行 IP 地址转化 IP itoa f1 temp 10 IP T IP itoa f2 temp 10 IP T IP itoa f3 temp 10 IP T IP itoa f4 temp 10 m cBtnStop EnableWindow m cBtnScan EnableWindow FALSE 是否是单个端口扫描 if m bSinglePort CString port m cSinglePort GetWindowText port m minPort m maxPort nSinglePort atoi port else CString port1 port2 m cPortFrom GetWindowText port1 m cPortTo GetWindowText port2 m minPort atoi port1 m maxPort atoi port2 m cProgress SetRange32 0 m maxPort m minPort 1 m cProgress SetStep 1 if m bSinglePort return UINT m nMaxAttempts GetDlgItemInt IDC EDIT ATTEMPTS for m nCounter m minPort m nCounter m maxPort m nCounter BOOL bIsOpen FALSE UINT nAttempt 1 while nAttempt SetStatusBarText str str Empty 打开连接 bIsOpen TestConnection IP m nCounter 判断是否打开 if bIsOpen DATA pNode new DATA ASSERT pNode strcpy pNode IPAddress IP GetBuffer IP GetLength strcpy pNode port itoa m nCounter temp 10 pNode bStatus 1 open pNode nAttempts nAttempt m pStatusList AddTail pNode 试图连接次数 nAttempt 如果还是无法扫描成功 if bIsOpen DATA pNode new DATA ASSERT pNode strcpy pNode IPAddress IP GetBuffer IP GetLength strcpy pNode port itoa m nCounter temp 10 pNode bStatus 0 关闭状态 pNode nAttempts nAttempt 1 m pStatusList AddTail pNode MSG message if PeekMessage DispatchMessage m cProgress StepIt 设定状态栏 m parent SetStatusBarText CString T 完毕 m cBtnScan EnableWindow m cBtnStop EnableWindow FALSE 填充报表视图 UINT nIndex 0 POSITION pos m pStatusList GetHeadPosition 循环插入扫描结果 while pos DATA pNode DATA m pStatusList GetNext pos AddItem nIndex 0 pNode IPAddress AddItem nIndex 1 pNode port if pNode bStatus AddItem nIndex 2 T 打开 AddItem nIndex 4 T else AddItem nIndex 2 T 关闭 AddItem nIndex 4 T AddItem nIndex 3 itoa pNode nAttempts temp 10 打开连接 BOOL CPortScanView TestConnection CString IP UINT nPort CTheSocket pSocket pSocket new CTheSocket ASSERT pSocket 创建 socket if pSocket Create 如果创建失败 则删除 返回 false delete pSocket pSocket NULL return FALSE 连接被连接的主机地址和指定端口 while pSocket Connect IP nPort 如果失败返回 false delete pSocket pSocket NULL return FALSE 关闭 socket pSocket Close delete pSocket return TRUE void CPortScanView OnButtonStop m nCounter m maxPort 1 m cBtnStop EnableWindow FALSE m cBtnScan EnableWindow m parent SetStatusBarText CString T Ready 保存成文件 void CPortScanView OnFileSave CFileDialog pDlg new CFileDialog FALSE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蜡裂解及重合装置操作工技能巩固考核试卷及答案
- 2025年数据标注员标注工具使用考核题(含答案与解析)
- 2025年知识图谱推理算法习题(含答案与解析)
- 2025年AI产品经理市场调研面试题(含答案与解析)
- 冷食品制作工技能操作考核试卷及答案
- 职业生涯规划师专业知识考核试卷及答案
- 景泰蓝釉料工测试考核试卷及答案
- 吸音材料制造工数字化技能考核试卷及答案
- 巨人花园课件
- 粉矿烧结工协作考核试卷及答案
- 食品安全 课件 高中主题班会
- YS/T 320-2007锌精矿
- YS/T 226.12-2009硒化学分析方法第12部分:硒量的测定硫代硫酸钠容量法
- GB/T 24218.3-2010纺织品非织造布试验方法第3部分:断裂强力和断裂伸长率的测定(条样法)
- GB/T 10799-2008硬质泡沫塑料开孔和闭孔体积百分率的测定
- 系统工程原理 - 国防科技大学信息系统与管理学院
- 博微配电网工程设计软件
- 当代世界社会主义现状课件
- 《给排水科学与工程概论》全套教学课件
- 电工考核评分表(月度)
- 教育科研:教师职业成长的阶梯课件
评论
0/150
提交评论