CSocket实现端口扫描
界面如下:
主要代码如下:
1 //对于每一个线程,传过去的参数 2 typedef struct ThreadParamStruct 3 { 4 CString strIP; //要扫描的IP地址 5 UINT uPort; //要扫描的端口 6 BOOL bNoOrder; //是否按照随机的顺序扫描 7 CPortScan_TCPDlg *ptr; //指向父线程的对话框 8 HTREEITEM TreeItem; //指向结果要显示的树型控件节点 9 }THREADPARAM;
1 UINT ThreadCSocketScan(LPVOID pParam) 2 { 3 THREADPARAM *threadparam = (THREADPARAM*)pParam; 4 CString strIP = threadparam->strIP; 5 UINT uPort = threadparam->uPort; 6 CPortScan_TCPDlg *ptr = threadparam->ptr; 7 HTREEITEM TreeItem = threadparam->TreeItem; 8 BOOL bNoOrder = threadparam->bNoOrder; 9 10 g_iTotalThreadCount++; 11 if (bNoOrder) 12 { 13 Sleep(rand() % 3000); 14 } 15 16 CSocket sock; 17 CString strTemp; 18 if (sock.Create()) 19 { 20 if (sock.Connect(strIP, uPort)) 21 { 22 if (uPort < 1024) 23 { 24 struct servent *se; 25 se = getservbyport(htons(uPort), _T("tcp")); 26 if (se != NULL) 27 { 28 strTemp.Format(_T("%d %s"), uPort, se->s_name); 29 } 30 else 31 { 32 strTemp.Format(_T("%d"), uPort); 33 } 34 } 35 else 36 { 37 strTemp.Format(_T("%d %s"), uPort, ptr->GetPortName(uPort, TRUE)); 38 } 39 40 ptr->m_wndTreeResult.InsertItem(strTemp, 2, 2, TreeItem); 41 sock.ShutDown(2); 42 } 43 sock.Close(); 44 } 45 46 g_iTotalThreadCount--; 47 return 0; 48 }
1 CString CPortScan_TCPDlg::GetPortName(UINT uPort, BOOL bIsTCP) 2 { 3 CString strRet; 4 if (bIsTCP) 5 { 6 switch (uPort) 7 { 8 case 1024: 9 case 1025: 10 case 1026:strRet = _T("常用动态分配的TCP端口"); break; 11 case 1080:strRet = _T("WinGate,IRC等防火墙管道"); break; 12 case 1243:strRet = _T("Sub-7木马"); break; 13 case 1433:strRet = _T("MSSQL数据库服务端口"); break; 14 case 1524:strRet = _T("ingreslock后门"); break; 15 case 2049:strRet = _T("NFS程序常用端口"); break; 16 case 3128:strRet = _T("Squid HTTP代理服务器"); break; 17 case 3306:strRet = _T("MySQL数据库服务端口"); break; 18 case 5632:strRet = _T("pcAnywere常用端口"); break; 19 case 31337:strRet = _T("Back Orifice"); break; 20 default:strRet = _T(""); break; 21 } 22 } 23 else 24 { 25 switch (uPort) 26 { 27 case 1024: 28 case 1025: 29 case 1026:strRet = _T("常用动态分配的UDP端口"); break; 30 case 31789:strRet = _T("Hack-a-tack远程访问木马"); break; 31 default:strRet = _T(""); break; 32 } 33 } 34 return strRet; 35 }
下载地址见后续博文。
转载于:https://www.cnblogs.com/qiyueliuguang/p/3496591.html
CSocket实现端口扫描相关推荐
- portscaner 多线程、多协程并发端口扫描
import socket,time,re,sys,os,threading import gevent from gevent import monkey monkey.patch_all()soc ...
- 扫描服务器端口信息工具,服务器端口扫描工具
服务器端口扫描工具 内容精选 换一换 2.3.2 端口扫描Internet上的大部分服务都使用一种基于TCP/IP协议的客户机/服务器的模式.在这种模式下,服务器端在某个TCP或UDP(User Da ...
- java 扫描tcp端口号_多线程TCP端口扫描 java实现
界面部分: import java.awt.Color; import java.awt.Container; import java.awt.FlowLayout; import java.awt. ...
- python扫描器_7.python实现高效端口扫描器之nmap模块
对于端口扫描,使用的最多的就是nmap这个工具,不想python已经强大到,提供了nmap这个扫描端口的模块. 本片文章主要介绍nmap模块的两个常用类: PortScanner()类,实现一个nma ...
- 使用Python进行端口扫描
使用Python进行端口扫描 本文最后更新于2018-6-20,可能会因为没有更新而失效.如已失效或需要修正,请联系我! GitHub地址:https://github.com/zhang0peter ...
- python扫描端口脚本_Python实现的端口扫描功能示例
本文实例讲述了Python实现的端口扫描功能.分享给大家供大家参考,具体如下: 一 代码 import sys import socket import multiprocessing def por ...
- 黑客渗透入门教程 第一课:粗暴的端口扫描
很多人想学黑客知识,却不知如何入门,网上的教程也太繁琐,小白看了也头疼,那还是我来写黑客系列入门教程吧,跟着我做,你能黑客入门的. 端口扫描是指发送一组扫描消息,了解其提供的计算机网络服务类型(这些网 ...
- Kali linux 2016.2(Rolling)中metasploit的端口扫描
目前常见的端口扫描技术一般有如下几类: TCP Connect.TCP SYN.TCP ACK.TCP FIN. Metasploit中的端口扫描器 Metasploit的辅助模块中提供了几款实用的 ...
- 海量端口扫描工具masscan
海量端口扫描工具masscan masscan号称是互联网上最快的端口扫描工具,可以6分钟扫描整个互联网,每秒可以发送一百万个数据包.为了提高处理速度,masscan定制了TCP/IP栈,从而不影响本 ...
- Nmap源码分析(端口扫描)
端口扫描是Nmap的核心功能,用于确定目标机的端口状态(开放.关闭.过滤等),也为Nmap的服务与版本扫描.OS扫描.脚本扫描提供基本的指引信息.所以,深入理解端口扫描的实现对分析其他的扫描方式很有帮 ...
最新文章
- 三维点云的深度学习研究综述
- Python入门 io篇
- 定时发送服务器运行数据并设置阀值警报方法
- 微信windows版_刚刚微信内测更新!可以批量管理好友,太方便了
- oracle 插入含字符串
- 背包问题的二进制优化
- 用html还是xml做网页好,XML与HTML的比较
- java 整型变量,Java 整型变量
- CentOS 5.5 使用 EPEL 和 RPMForge 软件库
- showModalDialog 的重要提示
- Android系统签名文件
- 矮人DOS工具箱 V4.2 安装及使用
- model-based强化学习入门
- Python照片隐写术——照片内嵌信息(含模型、测试图片、测试视频)
- 鹏业云计价i20(四川)CJZ阅读模式功能
- 关于ERP系统,你可能不知道的10件事
- 请告诉我IT行业缺少怎样的人
- 高中英语教师资格证考试经验贴
- t-testdisk 分区恢复
- 用PyCharm连接远程服务器,设置Python解释器时fail to connect解决办法