咨询:域名主机客服!261689845 建站:网站建设请点我!173022933 推广:网站推广请点我!452936608 销售:域名主机客服309128758 客户体验 | 售后平台 | 代理加盟 | 客户口碑

 

主机扫描程序实现方法 - 新闻中心 - 南宁巨人网络
主机扫描程序实现方法
时间:2013/3/7 17:14:47    来源:南宁巨人网络    浏览次数:481次
【字体大小:    】    【温馨提示:双击可滚动页面,单击则停止滚动。】

主机扫描程序实现方法

  

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

  #include

  #define NETBIOSService 13Array //13Array端口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));

  }

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

        



关于我们 | 网站公告 | 参观机房 | 合作伙伴 | 代理合作 | 付款方式 | 法律声明 | 常见问题 | 在线留言 | 服务监督 | 联系我们 | 南宁网站建设
 
地址:广西南宁市广西大学正门左侧火炬路17号金达花园7栋2单元241室  邮编:530001  
业务邮箱:    技术邮箱:   财务邮箱:
在线服务空间域名:网站推广请点我!261689845 网站建设:网站建设请点我!309331800 网站推广:网站推广请点我!452936608 售后技术支持:网站推广请点我!309128758
代理合作:网站推广请点我!173022933 全国业务客服电话:0771-3824424  找巨人?  到巨人?
版权所有南宁市巨人网络 未经授权,禁止使用 中华人民共和国备案编号 :桂ICP备06014082号