返回列表 发帖

扫描器C源代码+注释

#include #include #include #define iPort 80//目标Web Server端口 .#define szSign "500 13\r\nServer: Microsoft-IIS/5.0"//根据此标志来检查目标是否有漏洞 #pragma comment(lib,"ws2_32.lib") /////////////////////////////////////////////////////////////////////////// // //定义&初始化全局变量 char *SendBuff="GET /NULL.printer\n",//发送的请求buff CurrentTarget[52]={0},//存放最后一个线程将扫描的目标 turn[4][2]={"-","\\","|","/"};//显示进度时的字符 int SendBuffLen=strlen(SendBuff),//发送的buff长度 iConnTimeout,//TCP Connect TimeOut ii=0,//扫描进度     iTotal;//服务器总数 HANDLE hSemaphore=NULL,//信标内核对象句柄,用来控制线程数量        hStdout;//console标准输出句柄,做进度显示的时候用的 struct timeval timeout;//连接、发送和接收的超时值 DWORD SleepTime;//每个一个线程后等待的时间     /* SleepTime值根据用户输入的线程数量[ThreadNum]和TCP ConnectTimeOut[CONNTIMEO]来计算。确保在CONNTIMEO时间左右开ThreadNum个线程。这样在CONNTIMEO时间后,所开的线程开始陆续超时退出,可以继续稳定的开线程,可以有效的保证同时有ThreadNum个线程在运行。 */ /////////////////////////////////////////////////////////////////////////// void ShowError(char *);//显示出错信息函数 BOOL ResetCursor(void);//重置光标位置,线程输出的时候调用的 DWORD WINAPI ShowProInfo(LPVOID);//显示进度信息 DWORD WINAPI scan(LPVOID);//扫描函数 void usage(char *);//帮助函数 /////////////////////////////////////////////////////////////////////////// int main(int argc,char **argv) {     HANDLE hThread=NULL;//线程句柄     DWORD dwThreadID;//线程ID     struct sockaddr_in sa;     int i,        MaxThread;//最大线程数量     WSADATA    wsd;     long PreviousCount;     clock_t start,end;//程序运行的起始和结束时间     double duration;     //检查用户输入参数     if(argc!=5)     {        usage(argv[0]);        return 1;     }     //get target range     int StartNet=inet_addr(argv[1]);     int StopNet=inet_addr(argv[2]);     int StartHost=ntohl(StartNet);     int StopHost=ntohl(StopNet);     //取得线程数量     MaxThread=atoi(argv[3]);     //取得conn超时时间     iConnTimeout=atoi(argv[4]);     //检查参数合法性     if((iConnTimeout>6) || (iConnTimeout<2) || (MaxThread<1) || (MaxThread>500) || (StopHost 2001.5.20"        "\nhttp://www.patching.net"        "\n\nUsage:%s "        "\n\nNotice"        "\n    StartIP StopIP ==>Don‘t forgot StopIP must large than StartIP "        "\n    ThreadNum ==>Thread number,please input between 1-500"        "\n    CONNTIMEO ==>TCP connect timeout,please input between 2-6"        "\n\nExample"        "\n    %s 192.168.0.0 192.168.255.255 200 2",proname,proname,proname); }

扫描器C源代码+注释

收藏并学习!!!!
编译器是???

TOP

扫描器C源代码+注释

oh~ This code is very good~~
值得学习一下~~

TOP

返回列表 回复 发帖