庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>安全技术>黑客攻防>黑客入门>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

主机扫描程序实现方法

 作者:本站收集   日期:2005-5-14
字号选择〖 〗/ 双击滚屏 单击停止   
用过主机扫描工具?如〈代理猎手〉,〈追捕〉〈POSTCAN〉等。只要你浏览过黑客主页就会发现他们都提供此类工具下载。对于服务器是怎样发现所提供的服务?对于个人计算机又是怎样知道你机器有后门?下面就以俺用C++ BUILDER写的一个主机扫描工具的核心代码为列说一下实现方法。
主机扫描程序实现方法:

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

#include

#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));

}
上一篇:Linux调试技术介绍    下一篇:如何阅读源代码 三  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-5-14
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿