|
![]() | 作者: tosy [tosy0070]
![]() |
登录 |
本人是一初学者,请各位不吝赐教,谢谢了 |
地主 发表时间: 05-04-10 20:19 |
![]() | 回复: jhkdiy [jhkdiy] ![]() |
登录 |
要那种语言实现的? |
B1层 发表时间: 05-04-10 20:39 |
![]() | 回复: tosy [tosy0070] ![]() |
登录 |
c++,VC,BCB都可以,你有吗,有的话发个给我啊,谢谢了 |
B2层 发表时间: 05-04-10 21:26 |
![]() | 回复: tosy [tosy0070] ![]() |
登录 |
我的邮箱是tosy0070@tom.com |
B3层 发表时间: 05-04-10 21:29 |
![]() | 回复: jhkdiy [jhkdiy] ![]() |
登录 |
个端口扫描器的源代码 本文作者: Hikaru 文章出处: 原创 发布日期:2005-1-26 阅读次数:22 引用: -------------------------------------------------------------------------------- #include <windows.h> #include <stdio.h> #include <string.h> #include <winbase.h> #include <winsock.h> #pragma comment(lib,"ws2_32.lib") #define MAXThreadCount 100 //设置最大线程数 #define SumScanCount 65535 //设置扫描端口总数 struct sockaddr_in server; int ThreadCount=0; int dwThrdParam = 1; //CreateThread的参数,提到前面好计算 unsigned int resolve(char *name) { struct hostent *he; unsigned int ip; if((ip=inet_addr(name))==(-1)) { if((he = gethostbyname(name))==0) { printf("ERROR: Don't find the %s .\n",name); exit(0); } memcpy(&ip,he->h_addr,4); } return ip; } DWORD WINAPI Scan(LPVOID lpParam ) { int mysock,code,port=(int)lpParam ; mysock=socket(AF_INET,SOCK_STREAM,0); if(mysock < 0) { printf("socket error!"); } server.sin_port = htons(port); if(connect(mysock,(struct sockaddr *) & server,sizeof(server))!=0) { code=GetLastError(); } else { printf("port %d openning\n",port); } closesocket(mysock); ThreadCount--; return 0; } void thread(int port) { DWORD dwThreadId; HANDLE hThread; WSADATA ws; if (WSAStartup( MAKEWORD(2,2), &ws )!=0) { printf(" [-] WSAStartup() error\n"); exit(0); } hThread = CreateThread( NULL, // no security attributes 0, // use default stack size Scan, // thread function (LPVOID)port, // argument to thread function 0, // use default creation flags &dwThreadId); // returns the thread identifier if (hThread == NULL) printf( "CreateThread failed." ); dwThrdParam++; ThreadCount++; Sleep(200); //延时,否则CPU会用满…… CloseHandle(hThread); } void main(int argc, char* argv[]) { if(argc!=2) { printf("\n- portscaner -\n"); printf("- code by hikaru QQ:65505381 - \n"); printf("Usage: %s IP\n",argv[0]); exit(0); } server.sin_family = AF_INET; server.sin_addr.s_addr = resolve( argv[1] ); printf("Starting and waiting..............\n"); while( dwThrdParam <= SumScanCount ) { if( ThreadCount < MAXThreadCount ){ thread(dwThrdParam); } } while( ThreadCount!=0 ){ } WSACleanup(); printf("Done!"); } |
B4层 发表时间: 05-04-10 22:17 |
![]() | 回复: wxngzybb [wxngzybb] ![]() |
登录 |
我去找找 |
B5层 发表时间: 05-04-10 23:01 |
![]() | 回复: tosy [tosy0070] ![]() |
登录 |
谢谢了,编译通过 |
B6层 发表时间: 05-04-11 10:33 |
![]() | 回复: llk2005 [llk2005] ![]() |
登录 |
#include<winsock2.h> #include<stdio.h> #include<stdlib.h> #pragma comment(lib,"ws2_32") main(int ac,char *av[]) { WSADATA wsaData; SOCKET S; struct sockaddr_in targ; int ret; int sp; int re; if(ac<4) { printf("usage: %s <host> <startport> <endport>",av[0]); exit(1); } ret=WSAStartup(MAKEWORD(2,2),&wsaData); if (ret==-1) { printf("Faild !"); } for(sp=(atoi)(av[2]);sp<=(atoi)(av[3]);sp++) { if(((atoi)(av[2]))>((atoi)(av[3]))) { printf("start port must be lower than the end port! : [ "); exit(0); } S=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); targ.sin_addr.s_addr=inet_addr(av[1]); targ.sin_family=AF_INET; printf("scan port:%d\n",sp); targ.sin_port=htons((unsigned short)sp); re = connect(S,(struct sockaddr*)&targ,sizeof(struct sockaddr)); if (re == 0) { printf("port: %d open\n",sp); } closesocket(S); } WSACleanup(); exit(0); } 单线程的 很慢 但很简单 QQ群:2016334的共享盘里有它的.exe文件欢迎加入我们 |
B7层 发表时间: 05-04-26 17:51 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号