界面如下:

主要代码如下:

 //对于每一个线程,传过去的参数
typedef struct ThreadParamStruct
{
CString strIP; //要扫描的IP地址
UINT uPort; //要扫描的端口
BOOL bNoOrder; //是否按照随机的顺序扫描
CPortScan_TCPDlg *ptr; //指向父线程的对话框
HTREEITEM TreeItem; //指向结果要显示的树型控件节点
}THREADPARAM;
 UINT ThreadCSocketScan(LPVOID pParam)
{
THREADPARAM *threadparam = (THREADPARAM*)pParam;
CString strIP = threadparam->strIP;
UINT uPort = threadparam->uPort;
CPortScan_TCPDlg *ptr = threadparam->ptr;
HTREEITEM TreeItem = threadparam->TreeItem;
BOOL bNoOrder = threadparam->bNoOrder; g_iTotalThreadCount++;
if (bNoOrder)
{
Sleep(rand() % );
} CSocket sock;
CString strTemp;
if (sock.Create())
{
if (sock.Connect(strIP, uPort))
{
if (uPort < )
{
struct servent *se;
se = getservbyport(htons(uPort), _T("tcp"));
if (se != NULL)
{
strTemp.Format(_T("%d %s"), uPort, se->s_name);
}
else
{
strTemp.Format(_T("%d"), uPort);
}
}
else
{
strTemp.Format(_T("%d %s"), uPort, ptr->GetPortName(uPort, TRUE));
} ptr->m_wndTreeResult.InsertItem(strTemp, , , TreeItem);
sock.ShutDown();
}
sock.Close();
} g_iTotalThreadCount--;
return ;
}
 CString CPortScan_TCPDlg::GetPortName(UINT uPort, BOOL bIsTCP)
{
CString strRet;
if (bIsTCP)
{
switch (uPort)
{
case :
case :
case :strRet = _T("常用动态分配的TCP端口"); break;
case :strRet = _T("WinGate,IRC等防火墙管道"); break;
case :strRet = _T("Sub-7木马"); break;
case :strRet = _T("MSSQL数据库服务端口"); break;
case :strRet = _T("ingreslock后门"); break;
case :strRet = _T("NFS程序常用端口"); break;
case :strRet = _T("Squid HTTP代理服务器"); break;
case :strRet = _T("MySQL数据库服务端口"); break;
case :strRet = _T("pcAnywere常用端口"); break;
case :strRet = _T("Back Orifice"); break;
default:strRet = _T(""); break;
}
}
else
{
switch (uPort)
{
case :
case :
case :strRet = _T("常用动态分配的UDP端口"); break;
case :strRet = _T("Hack-a-tack远程访问木马"); break;
default:strRet = _T(""); break;
}
}
return strRet;
}

下载地址见后续博文。

CSocket实现端口扫描的更多相关文章

  1. ★Kali信息收集★8.Nmap :端口扫描

    ★Kali信息收集~ 0.Httrack 网站复制机 http://www.cnblogs.com/dunitian/p/5061954.html ★Kali信息收集~ 1.Google Hackin ...

  2. Python3实现TCP端口扫描

    在渗透测试的初步阶段通常我们都需要对攻击目标进行信息搜集,而端口扫描就是信息搜集中至关重要的一个步骤.通过端口扫描我们可以了解到目标主机都开放了哪些服务,甚至能根据服务猜测可能存在某些漏洞. TCP端 ...

  3. 端口扫描base

    #coding:utf8 import os import socket import sys def IsOpen(ip,port): s = socket.socket(socket.AF_INE ...

  4. Android NDK学习之第一个实例---端口扫描

    为什么要写一个端口扫描的程序,Java来写不是很方便吗?因为我也没有想到什么例子能够方便的来练习.于是想到以前找到的端口扫描的C代码,于是想用他们来练习.扫描服务端端口的方式有许多种,最简单的就是直接 ...

  5. 端口扫描之王——nmap入门精讲(一)

    端口扫描在百度百科上的定义是: 端口扫描是指某些别有用心的人发送一组端口扫描消息,试图以此侵入某台计算机,并了解其提供的计算机网络服务类型(这些网络服务均与端口号相关),但是端口扫描不但可以为黑客所利 ...

  6. 使用Metasploit进行端口扫描

    Metasploit中不仅能够使用第三方扫描器Nmap等,在其辅助模块中也包含了几款内建的端口扫描器. 查看Metasploit框架提供的端口扫描工具: msf > search portsca ...

  7. 小白日记10:kali渗透测试之端口扫描-UDP、TCP、僵尸扫描、隐蔽扫描

    端口扫描 二三四层发现的目的只是为了准确发现所有活着主机IP,确定攻击面,端口扫描即发现攻击点,发现开放端口.端口对应网络服务及应用端程序,服务端程序的漏洞通过端口攻入.[所有的扫描结果,都不要完全相 ...

  8. 『安全工具』Nmap 强悍的端口扫描工具

    作为时下流行的端口扫描工具,Nmap有因其扫描的隐密性有“端口扫描之王”之称 上图是黑客帝国(The Matrix)中崔妮蒂用Nmap入侵核发电站的能源管理系统 0x 01 Nmap介绍 Nmap是一 ...

  9. Hacker(16)----防范端口扫描与嗅探

    端口扫描与嗅探都是黑客常用的招数,其目的是定位目标计算机和窃取隐私信息.为确保自己计算机的安全,用户需要掌握防范嗅探与端口扫描的常见措施,保障个人隐私信息安全. 一.掌握防范端口扫描的常用措施 防范端 ...

随机推荐

  1. maven Java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet

    如果你可以确认你的maven Dependencies中已经导入了如下的jar包,那么你就要检查下Deployment Assembly 选中项目 alt+enter,然后查看maven依赖有没有被添 ...

  2. AndroidStudio一步步教你修改项目包名(最详细,最易懂)

    如果你看了很多篇博文还是修改不了包名,我相信这篇可以帮你解决修改包名的问题 修改项目包名,实现不覆盖安装(如果只是想不覆盖安装,更改build.gradle里面的包名就OK了,那这篇博文到这里就可以结 ...

  3. 百度地图 JavaScript API 极速版 开发体会

    前段时间百度地图API推出了 JavaScript API 极速版 1.0 简单看了一下,从产品定位来说真是挺好. 把开发人员细分成普通web开发人员和移动web开发人员.正好用到了手机地图这块决定尝 ...

  4. 1 tcp/ip协议

    该协议是一个协议族,并是说具体某个协议下图中的协议都属于tcp/ip协议.他是用来规范互联网中电脑间数据传输的. 该协议可以分为4层或者7层 4层,实际层数: 链路层 网络层 传输层 应用层 7层,理 ...

  5. delphi的bpl、dcp 、dcu文件意义(BPL相当于C++中的DLL,DCP相当于C++中的Lib,编译时需要)

    BPL  英文全称 Borland Package library ,是一种特殊的DLL文件,用于代码重用和减少可执行文件.编译bpl时,仅需要添加相应功能的pas文件,如果有窗体,则需要添加dfm文 ...

  6. python实现DES加密算法和3DES加密算法

    pyDes.py ############################################################################# # Documentati ...

  7. 【winows7+android-ndk-r9+Cygwin 】cocos2dx 2.*游戏移植Android平台完全手册

    为了有不少走的弯路.这里简要记录cocos2d开发环境的搭建.android开发环境搭建.android NDK环境搭建.终于实现cocos2dx 2.* 游戏Android平台移植. 转载请注明出处 ...

  8. [转]TensorFlow如何进行时序预测

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库.节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组 ...

  9. NUGET源不存在,安装Nuget包提示“本地源不存在”

    困扰了两天的问题,终于找到原因了.因此来这里记录一下~ 前两天写项目时,要从NUGET上安装个第三方库,但不管是从可视化的管理器还是管理器控制台安装,都提示“本地源‘*******’不存在”.然后到网 ...

  10. WAMP采用别名时ThinkPHP5项目设置方法

    打开public目录下的.htaccess文件,并在其中添加 RewriteBase /xxx<IfModule mod_rewrite.c> Options +FollowSymlink ...