资源简介

1.端口扫描 portScan:
端口扫描程序,包括ping扫描,syn扫描,fin扫描等方式,可以参考。
2.ICMP发现活动主机&TCP(SYN FIN ACK)扫描&UDP扫描:
ICMP发现活动主机 TCP(SYN FIN ACK)端口扫描 UDP端口扫描 vs2008 Winpcap开发。
3.端口扫描器程序:
端口扫描器程序,实现了: TCP Connect扫描 TCP SYN扫描 TCP FIN扫描 TCP ACK扫描 TCP NULL扫描 TCP XMAS扫描 UDP扫描。
4.端口扫描器:
1.采用多线程技术能够对指定的网络主机与端口在同一时间并发进行扫描 2.采用connect扫描、半开扫描、FIN扫描三种手段实现扫描 3.结合扫描结果与/etc/services文件将网络中开启的主机及主机开启的服务在屏幕上显示出来 4.判断主机OS功能 5.识别服务器功能。
5.端口扫描程序源码:
该源码为《计算机网络高级软件编程技术》第17章的源码,用TCP,UDP,ACK,FIN,ARP,ICMP等几种方法实现了IP扫描、端口扫描。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
//#include 
#include 
#include 
#include “nids.h“

#define int_ntoa(x) inet_ntoa(*((struct in_addr *)&x))

char ip[32];
int minport;
int maxport;
struct sockaddr_in target;
struct sockaddr_in myaddr;
struct sockaddr_in target2;
struct sockaddr_in myaddr2;
int sockfd ;
int sockfd2 ;
int flag=0;
pthread_t pth ;
pthread_t pth2 ;
pthread_t pth3 ;
pthread_t pth4 ;
int panduan[65536];

char *adres (struct tuple4 addr)
{
  static char buf[256];
  strcpy (buf int_ntoa (addr.saddr));
  sprintf (buf + strlen (buf) “%i“ addr.source);
  strcat (buf int_ntoa (addr.daddr));
  sprintf (buf + strlen (buf) “%i“ addr.dest);
  return buf;
}
//定义TCP伪报头
typedef struct psd_hdr
{
unsigned long saddr; //源地址
unsigned long daddr; //目的地址
char mbz; char ptcl; //协议类型
unsigned short tcpl; //TCP长度

}PSD_HEADER;

//定义TCP报头
typedef struct _tcpheadr
{
unsigned short th_sport; //16位源端口
unsigned short th_dport; //16位目的端口
unsigned int th_seq; //32位序列号
unsigned int th_ack; //32位确认号
unsigned char th_lenres; //4位首部长度/4位保留字
unsigned char th_flag; //6位标志位
unsigned short th_win; //16位窗口大小
unsigned short th_sum; //16位校验和
unsigned short th_urp; //16位紧急数据偏移量

} TCP_HEADER;


//定义IP报头
typedef struct _ipheadr
{
unsigned char h_lenver ; //长度加版本号
unsigned char tos;
unsigned short total_len;
unsigned short ident;
unsigned short frag_and_flags;
unsigned char ttl;
unsigned char proto;
unsigned short checksum;
unsigned int sourceIP;
unsigned int destIP;

} IP_HEADER;

//checksum
unsigned short checksum(unsigned short *addrint len){
int nleft=len;
   int sum=0;
   unsigned short * w=addr;
   unsigned short answer=0;

   while (nleft>1)
   {
     sum+=*w++;
     nleft-=2;
   }

   if (nleft==1)
   {
     *(unsigned char *)(&answer)=*(unsigned char *)w;
     sum+=answer;
   }

   sum=(sum>>16)+(sum & 0xffff);
   sum+=(sum>>16);
   answer=~sum;
   return(answer);
}

void TCP_Send(int portunsigned char flag){

//设置目标端口
target.sin_port = htons(port) ;

//构造包
char buffer[1024] ;
memset(buffer01024) ;
struct _tcpheadr tcpHeader ;
struct psd_hdr psdHeader ;

//填充TCP
//目的端口
tcpHeader.th_dport = htons(port) ;
//源端口
tcpHeader.th_sport = htons(60000) ;
//序列号??
tcpHeader.th_seq = htonl(0x1245678);
//确认号
tcpHeader.th_ack = 0;
//(4位首部长度/4位保留字)
tcpHeader.th_lenres = (sizeof(tcpHeader) / 4 << 4 | 0);
//SYN标志
tcpHeader.th_flag = flag ;//SYN
//滑动窗口
tcpHeader.th_win = htons(16384) ;
//16位紧急数据偏移量
tcpHeader.th_urp = 0;
//16位校验和
tcpHeader.th_sum = 0;

//psdheader

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-12-21 17:06  5种不同的端口扫描器程序\
     文件    16458884  2019-12-18 22:41  5种不同的端口扫描器程序\ICMP%26PortScan.rar
     文件       14329  2019-12-18 22:40  5种不同的端口扫描器程序\portscan2.0.c
     文件      450006  2019-12-18 22:40  5种不同的端口扫描器程序\第17章 综合扫描程序.rar
     文件      363724  2019-12-18 22:41  5种不同的端口扫描器程序\端口扫描.zip
     文件     5320987  2019-12-18 22:41  5种不同的端口扫描器程序\端口扫描器程序.rar

评论

共有 条评论