端口扫描工具app_端口扫描工具程序制作

hacker|
156

怎么用BAT文件做端口扫描器

首先,给你更正一下,估计是你看了别人的教程或者软件,让你以为BAT可以扫端口,严格意义上说批处理文件BAT是不能真正意义上实现扫端口功能,即使有也是利用TELNET。而且是单线程。是没任何意义的。你看到的我估计是S扫描器,然后别人做成一个批处理,比如流行的扫135,1433,3389或者其他溢出都喜欢用S扫描器,因为它速度一流,而且是命令下操作适合做成BAT文件批量处理。而输出扫描结果这个比较简单,就是写几行批处理来提取S扫描器生成的结果Result.txt文件,然后输出到5.txt中。就这么简单。这些代码网上有现成的,如果你有需要可以给我留言,适当的给你分享分享!

怎么制作一个BAT的端口扫描器

@echo off

setlocal enabledelayedexpansion

title 端口扫描器 by 风旋碧浪

color 4fMODE con: COLS=50 LINES=12

echo.echo 开始扫描,需要时间,请稍候……

(echo.echo 端口号 进程名称

echo.echo TCP协议: )端口查看.txt

echo.echo 正在扫描TCP协议……

for /f "skip=4 tokens=2,5" %%a in ('netstat -ano -p TCP') do (

for /f "tokens=2 delims=:" %%A in ("%%a") do set TCP端口=%%A

for /f "skip=2 delims=, tokens=1" %%A in ('tasklist /fi "PID eq %%b" /FO CSV') do set TCP进程=%%~A

echo !TCP端口! !TCP进程!端口查看.txt

)

echo UDP协议: 端口查看.txt

echo.echo 正在扫描UDP协议……

for /f "skip=4 tokens=2,4" %%a in ('netstat -ano -p UDP') do (

for /f "tokens=2 delims=:" %%A in ("%%a") do set UDP端口=%%A

for /f "skip=2 delims=, tokens=1" %%A in ('tasklist /fi "PID eq %%b" /FO CSV') do set UDP进程=%%~A

echo !UDP端口! !UDP进程!端口查看.txt

)

echo.echo.echo 扫描结束!请查看《端口查看.txt》文件!

pausenul

端口扫描原理及工具 - 安全工具篇

"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部端口,不可见。例如计算机中的80端口、21端口、23端口等。

一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些服务完全可以通过1个IP地址来实现。那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP 地址与网络服务的关系是一对多的关系。实际上是通过“IP地址+端口号”来区分不同的服务的。

因此,一个开放的端口代表一个提供的服务,不同的服务具有不同的端口号, 因此要对服务进行测试,首先要确定是否开放对应端口号 。

TCP端口和UDP端口。由于TCP和UDP 两个协议是独立的,因此各自的端口号也相互独立,比如TCP有235端口,UDP也 可以有235端口,两者并不冲突。

1、周知端口

周知端口是众所周知的端口号,范围从0到1023,其中80端口分配给WWW服务,21端口分配给FTP服务等。我们在IE的地址栏里输入一个网址的时候是不必指定端口号的,因为在默认情况下WWW服务的端口是“80”。

2、动态端口

动态端口的范围是从49152到65535。之所以称为动态端口,是因为它 一般不固定分配某种服务,而是动态分配。

3、注册端口

端口1024到49151,分配给用户进程或应用程序。这些进程主要是用户安装的程序。

1、使用Nmap工具查找ip的tcp端口

-O :获取操作系统版本信息

2、使用Nmap工具查找udp端口

-sU :表示udp scan , udp端口扫描

-Pn :不对目标进行ping探测(不判断主机是否在线)(直接扫描端口)

对于udp端口扫描比较慢,扫描完6万多个端口需要20分钟左右

3、使用Nmap工具获取端口Banner

只会返回有Banner信息的,没有则不会返回。

4、使用Nmap嗅探服务版本信息

如果没有返回banner信息的,也可以使用该方法尝试嗅探服务版本信息。

5、利用nmap对目标进行完整测试

在针对内容测试时,有授权的情况下,可以利用nmap对目标进行完整测试

要求制作一个WIN FORM版的端口扫描仪。

兄弟,可以说这个忙不是多少分能搞定的,开发一个这个东西,要浪费多少精力?!!你要用白花花的钞票了噢,!

用C++编写端口扫描程序

#include stdio.h

#include winsock.h

#define NETWORK_ERROR -1

#define NETWORK_OK 0

#define PORT_MIN 1

#define PORT_MAX 65535

HANDLE hThread;

DWORD hID;

char hostname[30];

int starting_port = 0;

int ending_port = 0;

int nopen = 0;

DWORD portscan();

int main(){

int ret;

WSADATA dat;

DWORD version;

version = MAKEWORD(2,2);

ret = WSAStartup(version,dat);

if(ret != 0){ 

printf("Error initializing Winsock.\n");

WSACleanup();

return NETWORK_ERROR;

}

if(ret == 0){

printf("Enter hostname:");

scanf("%s",hostname);

printf("Enter starting port:");

scanf("%d",starting_port);

if(starting_port  PORT_MIN){

printf("Invalid port number.\n");

WSACleanup();

return NETWORK_ERROR;

}

printf("Enter ending port:");

scanf("%d",ending_port);

if(ending_port  PORT_MAX){

printf("Invalid port number.\n");

WSACleanup();

return NETWORK_ERROR;

}

printf("\nScanning [%s]...\n",hostname);

hThread = CreateThread(0,0,(LPTHREAD_START_ROUTINE)portscan,0,0,hID);

if(hThread == 0){

printf("Failed to create thread.\n");

WSACleanup();

return NETWORK_ERROR;

sleep(-1);

}

WSACleanup();

return NETWORK_OK;

}

DWORD portscan(){

int i,nret;

SOCKET thesocket;

LPHOSTENT hostent;

thesocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

hostent = gethostbyname((hostname));

for(i = starting_port;i  ending_port+1;++i){ 

SOCKADDR_IN hostinfo; 

hostinfo.sin_family = AF_INET;

hostinfo.sin_addr=*((LPIN_ADDR)*hostent-h_addr_list);

hostinfo.sin_port = htons(i);

nret = connect(thesocket,(LPSOCKADDR)hostinfo,sizeof(hostinfo)); 

if(nret == 0){

printf("\n\t%d\n",i); 

++nopen;

}

printf("\nScan complete.\n\n");

printf("Number of ports opened = %d\n",nopen);

closesocket(thesocket);

}

设计一个判断端口是否开启的扫描器程序的源代码怎么写?

for(int i=0;i6;i++)

{

for(int j=0;j10;j++)

{

theport[j].rmt_host=rmt_host;

theport[j].p=port[i*10+j];

theport[j].n=j;

Thread[j]=AfxBeginThread(pScan,(LPVOID)theport[j]);

//启动端口扫描线程

hThread[j]=Thread[j]-m_hThread;

Sleep(1);

}

WaitForMultipleObjects(10,hThread,TRUE,120000);

}

//扫描模块代码

SOCKET sockfd;

SOCKADDR_IN addr;

sockfd = socket(AF_INET, SOCK_STREAM, 0);

if (sockfd 0)

{

exit(0);

}

addr.sin_family = AF_INET;

addr.sin_port = htons(port);

addr.sin_addr.s_addr = inet_addr(rmt_host);

int r = connect(sockfd,(struct sockaddr *) addr, sizeof(addr));

//尝试连接端口进行检测

closesocket(sockfd);

//连接返回值处理

if (r!=-1)

{

::PostMessage(hWnd,WM_DISPLAY,port,0);

}

//显示端口扫描结果

LONG CScanDlg::OnDisplay(LONG lParam, UINT wParam)

{

LPSERVENT bar;

CString open;

int p=lParam;

bar = getservbyport(htons(p),"tcp");

open.Format("\t%d号端口(%s)开放!\r\n",p,(bar == NULL) ? "未知" :

bar-s_name);

m_HistoryEdit.AppendString (open);

return 0;

}

0条大神的评论

发表评论