主机扫描程序实现方法

原创 2001年12月22日 13:07:00

用过主机扫描工具?如〈代理猎手〉,〈追捕〉〈POSTCAN〉等。只要你浏览过黑客主页就会发现他们都提供此类工具下载。对于服务器是怎样发现所提供的服务?对于个人计算机又是怎样知道你机器有后门?下面就以俺用C++ BUILDER写的一个主机扫描工具的核心代码为列说一下实现方法。
主机扫描程序实现方法:

作者:病毒

  用过主机扫描工具?如〈代理猎手〉,〈追捕〉〈POSTCAN〉等。只要你浏览过黑客主页就会发现他们都提供此类工具下载。对于服务器是怎样发现所提供的服务?对于个人计算机又是怎样知道你机器有后门?下面就以俺用C++ BUILDER写的一个主机扫描工具的核心代码为列说一下实现方法。

#include <winsock.h>

#define NETBIOSService 139 //139端口NETBIOS服务

#define WWWService 80 //80端口WWW服务

#define FTPService 21 //21端口FTP服务

//以上是针对服务器而言

#define BOService 31337 //BO木马的后门端口

#define NETSPYService 7306 //NETSPY木马的后门端口

#define BHService 7626 //冰河木马的后门端口

//以上是针对个人计算机

BOOL SERVERConn(hostent *SERHost,SOCKET SERSock,unsigned short nPort)

//连接函数,hostent结构见帮助

{

SOCKADDR_IN Sock_in; //结构见帮助

BOOL RetMsg;

Sock_in.sin_family=AF_INET; //连接类型

Sock_in.sin_port=htons(nPort); //所连接的主机端口 memcpy(&(Sock_in.sin_addr),SERHost->h_addr,sizeof(Sock_in.sin_addr)); //主机地址赋予结构以便下面调用

Application->ProcessMessages();

if((connect(SERSock,(LPSOCKADDR)&Sock_in,sizeof(Sock_in)))==SOCKET_ERROR) //开始连接并判断是否成功

{

RetMsg=FALSE; //此端口没有开放

closesocket(SERSock);

return RetMsg;

}

RetMsg=TRUE; //开放了

shutdown(SERSock,0); //不许端口接收,发送数据但保持连接状态 closesocket(SERSock); //成功后马上关闭,以免。。。

return RetMsg;

}

WSADATA wsaData; //WSADATA结构见帮助

SOCKET Sock;

hostent *HostMsg;

if(WSAStartup(MAKEWORD(1,1),&wsaData)!=NULL) //以WINSOCK1.1协议初始化

{

ShowMessage("初始化WINSOCK错误");

WSACleanup();

}

HostMsg=gethostbyname(Edit1->Text.c_str()); //获取主机信息

if(!HostMsg)

{

ShowMessage("主机名称错误,请检查IP地址");

WSACleanup();

}

else if((Sock=(socket(AF_INET,SOCK_STREAM,0)))==SOCKET_ERROR) //SOCKET函数见帮助

{

ShowMessage("SOCKET错误");

closesocket(Sock);

WSACleanup();

}

if(SERVERConn(HostMsg,Sock,WWWService)) //调用SERVERConn函数连接

{

Label3->Font->Color=clRed;

Label3->Caption="发现服务"; //端口开放以红色显示

closesocket(Sock);

Sock=(socket(AF_INET,SOCK_STREAM,0));

}

else

{

Label3->Font->Color=clBlack;

Label3->Caption="没有发现服务"; //没有开放以黑色显示

closesocket(Sock);

Sock=(socket(AF_INET,SOCK_STREAM,0));

}

  

  试一下。怎样?不错吧,你也可以写黑客程序,还不赶紧动手写一个自己的端口扫描程序?

C#网络编程 (五) 简单端口扫描程序

概述端口扫描技术是一中探测本地和远程端口开放情况的策略和方法,是一种非常重要的攻击探测手段。一个端口就是一个通道。通过端口扫描,可以知道目标主机上开放了哪些端口,运行了哪些服务。对端口扫描技术的行为研...
  • im_zhq
  • im_zhq
  • 2016年05月21日 09:19
  • 3389

基于ICMP和TCP协议的网段扫描器

1. 系统描述1.1. 设计目标进行网络管理时,常常需要确定当前网络中处理活动状态的主机。本设计的目标就是编制程序,利用ICMP的回送请求和回送应答消息,来发现指定网段中的活动主机,即ping消息...
  • SkullSky
  • SkullSky
  • 2016年08月18日 20:50
  • 2210

基于Python socket的端口扫描程序

利用python中的socket connect 方法扫描某个网段中的主机以及主机开放的端口
  • cighao
  • cighao
  • 2015年03月29日 21:35
  • 1893

ARP协议获取局域网内部活动主机物理地址的程序实现

  • 2015年07月19日 17:21
  • 72KB
  • 下载

GEC2440A 按键 用扫描按键方式实现Linux 驱动程序实现

  • 2009年10月10日 20:05
  • 19KB
  • 下载

在一个类中调用另一个类的数据成员的方法-程序实现

  • 2010年11月11日 00:55
  • 18KB
  • 下载

与距离成反比加权法的数据插值方法及程序实现

  • 2013年04月03日 14:54
  • 402KB
  • 下载

n 皇后问题C++程序实现跌代方法

  • 2008年01月09日 21:03
  • 2KB
  • 下载

从MySQL导入导出大量数据的程序实现方法

  • 2010年10月07日 09:44
  • 24KB
  • 下载

2013中兴捧月杯-数字化婚姻配对程序实现(5种方法)

  • 2013年07月15日 21:30
  • 891B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:主机扫描程序实现方法
举报原因:
原因补充:

(最多只允许输入30个字)