nmap.h
来自「Ubuntu packages of security software。 相」· C头文件 代码 · 共 447 行 · 第 1/2 页
H
447 行
#if HAVE_ARPA_INET_H#include <arpa/inet.h>#endif#include <math.h>#include <assert.h>#if HAVE_SYS_RESOURCE_H#include <sys/resource.h>#endif/*#include <net/if_arp.h> *//* defines struct arphdr needed for if_ether.h */// #if HAVE_NET_IF_H// #ifndef NET_IF_H /* why doesn't OpenBSD do this?! */// #include <net/if.h>// #define NET_IF_H// #endif// #endif// #if HAVE_NETINET_IF_ETHER_H // #ifndef NETINET_IF_ETHER_H// #include <netinet/if_ether.h>// #define NETINET_IF_ETHER_H// #endif /* NETINET_IF_ETHER_H */// #endif /* HAVE_NETINET_IF_ETHER_H *//******* DEFINES ************/#ifndef NMAP_VERSION/* Edit this definition only within the quotes, because it is read from this file by the makefiles. */#define NMAP_VERSION "4.53"#define NMAP_NUM_VERSION "4.53.0.0"#endif/* User configurable #defines: */#define MAX_PROBE_PORTS 10 /* How many TCP probe ports are allowed ? *//* Default number of ports in parallel. Doesn't always involve actual sockets. Can also adjust with the -M command line option. */#define MAX_SOCKETS 36 #define FAKE_ARGV "pine" /* What ps and w should show if you use -q *//* How do we want to log into ftp sites for */ #define FTPUSER "anonymous"#define FTPPASS "-wwwuser@"#define FTP_RETRIES 2 /* How many times should we relogin if we lose control connection? */#define MAX_TIMEOUTS MAX_SOCKETS /* How many timed out connection attempts in a row before we decide the host is dead? */#define DEFAULT_TCP_PROBE_PORT_SPEC "80" /* The ports TCP probes go to if unspecified by user -- uber hackers change this to 113 */#define DEFAULT_UDP_PROBE_PORT_SPEC "31338" /* The port UDP probes (esp. "ping" probes) go to if unspecified by user */#define DEFAULT_PROTO_PROBE_PORT_SPEC "1,2,4" /* The IPProto ping probes to use if unspecified by user */#define MAX_DECOYS 128 /* How many decoys are allowed? */#define MAXFALLBACKS 20 /* How many comma separated fallbacks are allowed in the service-probes file? *//* Default maximum send delay between probes to the same host */#ifndef MAX_TCP_SCAN_DELAY#define MAX_TCP_SCAN_DELAY 1000#endif#ifndef MAX_UDP_SCAN_DELAY#define MAX_UDP_SCAN_DELAY 1000#endif/* Maximum number of extra hostnames, OSs, and devices, we consider when outputing the extra service info fields */#define MAX_SERVICE_INFO_FIELDS 5/* We wait at least 100 ms for a response by default - while that seems aggressive, waiting too long can cause us to fail to detect drops until many probes later on extremely low-latency networks (such as localhost scans). */#ifndef MIN_RTT_TIMEOUT#define MIN_RTT_TIMEOUT 100 #endif#ifndef MAX_RTT_TIMEOUT#define MAX_RTT_TIMEOUT 10000 /* Never allow more than 10 secs for packet round trip */#endif#define INITIAL_RTT_TIMEOUT 1000 /* Allow 1 second initially for packet responses */#ifndef MAX_RETRANSMISSIONS#define MAX_RETRANSMISSIONS 10 /* 11 probes to port at maximum */#endif/* Number of hosts we pre-ping and then scan. We do a lot more if randomize_hosts is set. Every one you add to this leads to ~1K of extra always-resident memory in nmap */#define PING_GROUP_SZ 4096/* DO NOT change stuff after this point */#define UC(b) (((int)b)&0xff)#define SA struct sockaddr /*Ubertechnique from R. Stevens */#define HOST_UNKNOWN 0#define HOST_UP 1#define HOST_DOWN 2 #define HOST_FIREWALLED 4 #define HOST_BROADCAST 8 /* use the wierd_responses member of hoststruct instead */#define PINGTYPE_UNKNOWN 0#define PINGTYPE_NONE 1#define PINGTYPE_ICMP_PING 2#define PINGTYPE_ICMP_MASK 4#define PINGTYPE_ICMP_TS 8#define PINGTYPE_TCP 16#define PINGTYPE_TCP_USE_ACK 32#define PINGTYPE_TCP_USE_SYN 64/* # define PINGTYPE_RAWTCP 128 used to be here, but was never used. */#define PINGTYPE_CONNECTTCP 256#define PINGTYPE_UDP 512#define PINGTYPE_ARP 1024#define PINGTYPE_PROTO 2048#define DEFAULT_PING_TYPES PINGTYPE_TCP|PINGTYPE_TCP_USE_ACK|PINGTYPE_ICMP_PING/* OS scan */#define OS_SCAN_DEFAULT 9/* How many syn packets do we send to TCP sequence a host? */#define NUM_SEQ_SAMPLES 6/* The max length of each line of the subject fingerprint when wrapped. */#define FP_RESULT_WRAP_LINE_LEN 74/* TCP/IP ISN sequence prediction classes */#define SEQ_UNKNOWN 0#define SEQ_64K 1#define SEQ_TD 2#define SEQ_RI 4#define SEQ_TR 8#define SEQ_i800 16#define SEQ_CONSTANT 32/* TCP Timestamp Sequence */#define TS_SEQ_UNKNOWN 0#define TS_SEQ_ZERO 1 /* At least one of the timestamps we received back was 0 */#define TS_SEQ_2HZ 2#define TS_SEQ_100HZ 3#define TS_SEQ_1000HZ 4#define TS_SEQ_OTHER_NUM 5#define TS_SEQ_UNSUPPORTED 6 /* System didn't send back a timestamp */#define IPID_SEQ_UNKNOWN 0#define IPID_SEQ_INCR 1 /* simple increment by one each time */#define IPID_SEQ_BROKEN_INCR 2 /* Stupid MS -- forgot htons() so it counts by 256 on little-endian platforms */#define IPID_SEQ_RPI 3 /* Goes up each time but by a "random" positive increment */#define IPID_SEQ_RD 4 /* Appears to select IPID using a "random" distributions (meaning it can go up or down) */#define IPID_SEQ_CONSTANT 5 /* Contains 1 or more sequential duplicates */#define IPID_SEQ_ZERO 6 /* Every packet that comes back has an IP.ID of 0 (eg Linux 2.4 does this) */#ifndef MAXHOSTNAMELEN#define MAXHOSTNAMELEN 64#endif#ifndef recvfrom6_t# define recvfrom6_t int#endif/********************** LOCAL INCLUDES *****************************/#include "global_structures.h"/***********************STRUCTURES**********************************//* Moved to global_structures.h *//***********************PROTOTYPES**********************************//* print Interactive usage information */void printinteractiveusage();int ftp_anon_connect(struct ftpinfo *ftp);/* port manipulators */struct scan_lists *getpts(char *expr); /* someone stole the name getports()! */void getpts_simple(char *origexpr, int range_type, unsigned short **list, int *count);void free_scan_lists(struct scan_lists *ports);/* socket manipulation functions */void init_socket(int sd);/* Renamed main so that interactive mode could preprocess when neccessary */int nmap_main(int argc, char *argv[]);void nmap_free_mem();/* general helper functions */int parse_targets(struct targets *targets, char *h);char *statenum2str(int state);char *scantype2str(stype scantype);void sigdie(int signo);void reaper(int signo);char *seqreport(struct seq_info *seq);char *seqreport1(struct seq_info *seq);char *seqclass2ascii(int clas);char *ipidclass2ascii(int seqclass);char *tsseqclass2ascii(int seqclass);/* Convert a TCP sequence prediction difficulty index like 1264386 into a difficulty string like "Worthy Challenge */const char *seqidx2difficultystr(unsigned long idx);const char *seqidx2difficultystr1(unsigned long idx);int nmap_fetchfile(char *filename_returned, int bufferlen, char *file);int nmap_fileexistsandisreadable(char* pathname);int gather_logfile_resumption_state(char *fname, int *myargc, char ***myargv);#endif /* NMAP_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?