packet_types.h

来自「Ubuntu packages of security software。 相」· C头文件 代码 · 共 699 行 · 第 1/2 页

H
699
字号
struct tcphdr {	u_short	th_sport;		/* source port */	u_short	th_dport;		/* destination port */	tcp_seq	th_seq;			/* sequence number */	tcp_seq	th_ack;			/* acknowledgement number */	u_char	th_x2:4,		/* (unused) */		    th_off:4;		/* data offset */	u_char	th_flags;#define	TH_FIN	0x01#define	TH_SYN	0x02#define	TH_RST	0x04#define	TH_PSH	0x08#define	TH_PUSH	0x08#define	TH_ACK	0x10#define	TH_URG	0x20#define TH_ECE  0x40#define TH_CWR  0x80	u_short	th_win;			/* window */	u_short	th_sum;			/* checksum */	u_short	th_urp;			/* urgent pointer */};#define	TCPOPT_EOL	0#define	TCPOPT_NOP	1#define	TCPOPT_MAXSEG	2enum {  TCP_ESTABLISHED = 1,  TCP_SYN_SENT,  TCP_SYN_RECV,  TCP_FIN_WAIT1,  TCP_FIN_WAIT2,  TCP_TIME_WAIT,  TCP_CLOSE,  TCP_CLOSE_WAIT,  TCP_LAST_ACK,  TCP_LISTEN,  TCP_CLOSING	/* now a valid state */};// UDP Header//////////////////////////////////////////////////////////////////////////////struct udphdr {  unsigned short	source;  unsigned short	dest;  unsigned short	len;  unsigned short	check;};// Netbios/SAMBA///////////////////////////////////////////////////////////////////////////////* the basic packet size, assuming no words or bytes */#define smb_size 39/* offsets into message for common items */#define smb_com 8#define smb_rcls 9#define smb_reh 10#define smb_err 11#define smb_flg 13#define smb_flg2 14#define smb_reb 13#define smb_tid 28#define smb_pid 30#define smb_uid 32#define smb_mid 34#define smb_wct 36#define smb_vwv 37#define smb_vwv0 37#define smb_vwv1 39#define smb_vwv2 41#define smb_vwv3 43#define smb_vwv4 45#define smb_vwv5 47#define smb_vwv6 49#define smb_vwv7 51#define smb_vwv8 53#define smb_vwv9 55#define smb_vwv10 57#define smb_vwv11 59#define smb_vwv12 61#define smb_vwv13 63#define smb_vwv14 65#define smb_vwv15 67#define smb_vwv16 69#define smb_vwv17 71/* the complete */#define SMBmkdir      0x00   /* create directory */#define SMBrmdir      0x01   /* delete directory */#define SMBopen       0x02   /* open file */#define SMBcreate     0x03   /* create file */#define SMBclose      0x04   /* close file */#define SMBflush      0x05   /* flush file */#define SMBunlink     0x06   /* delete file */#define SMBmv         0x07   /* rename file */#define SMBgetatr     0x08   /* get file attributes */#define SMBsetatr     0x09   /* set file attributes */#define SMBread       0x0A   /* read from file */#define SMBwrite      0x0B   /* write to file */#define SMBlock       0x0C   /* lock byte range */#define SMBunlock     0x0D   /* unlock byte range */#define SMBctemp      0x0E   /* create temporary file */#define SMBmknew      0x0F   /* make new file */#define SMBchkpth     0x10   /* check directory path */#define SMBexit       0x11   /* process exit */#define SMBlseek      0x12   /* seek */#define SMBtcon       0x70   /* tree connect */#define SMBtconX      0x75   /* tree connect and X*/#define SMBtdis       0x71   /* tree disconnect */#define SMBnegprot    0x72   /* negotiate protocol */#define SMBdskattr    0x80   /* get disk attributes */#define SMBsearch     0x81   /* search directory */#define SMBsplopen    0xC0   /* open print spool file */#define SMBsplwr      0xC1   /* write to print spool file */#define SMBsplclose   0xC2   /* close print spool file */#define SMBsplretq    0xC3   /* return print queue */#define SMBsends      0xD0   /* send single block message */#define SMBsendb      0xD1   /* send broadcast message */#define SMBfwdname    0xD2   /* forward user name */#define SMBcancelf    0xD3   /* cancel forward */#define SMBgetmac     0xD4   /* get machine name */#define SMBsendstrt   0xD5   /* send start of multi-block message */#define SMBsendend    0xD6   /* send end of multi-block message */#define SMBsendtxt    0xD7   /* send text of multi-block message *//* Core+ protocol */#define SMBlockread	  0x13   /* Lock a range and read */#define SMBwriteunlock 0x14 /* Unlock a range then write */#define SMBreadbraw   0x1a  /* read a block of data with no smb header */#define SMBwritebraw  0x1d  /* write a block of data with no smb header */#define SMBwritec     0x20  /* secondary write request */#define SMBwriteclose 0x2c  /* write a file then close it *//* dos extended protocol */#define SMBreadBraw      0x1A   /* read block raw */#define SMBreadBmpx      0x1B   /* read block multiplexed */#define SMBreadBs        0x1C   /* read block (secondary response) */#define SMBwriteBraw     0x1D   /* write block raw */#define SMBwriteBmpx     0x1E   /* write block multiplexed */#define SMBwriteBs       0x1F   /* write block (secondary request) */#define SMBwriteC        0x20   /* write complete response */#define SMBsetattrE      0x22   /* set file attributes expanded */#define SMBgetattrE      0x23   /* get file attributes expanded */#define SMBlockingX      0x24   /* lock/unlock byte ranges and X */#define SMBtrans         0x25   /* transaction - name, bytes in/out */#define SMBtranss        0x26   /* transaction (secondary request/response) */#define SMBioctl         0x27   /* IOCTL */#define SMBioctls        0x28   /* IOCTL  (secondary request/response) */#define SMBcopy          0x29   /* copy */#define SMBmove          0x2A   /* move */#define SMBecho          0x2B   /* echo */#define SMBopenX         0x2D   /* open and X */#define SMBreadX         0x2E   /* read and X */#define SMBwriteX        0x2F   /* write and X */#define SMBsesssetupX    0x73   /* Session Set Up & X (including User Logon) */#define SMBffirst        0x82   /* find first */#define SMBfunique       0x83   /* find unique */#define SMBfclose        0x84   /* find close */#define SMBinvalid       0xFE   /* invalid command *//* Extended 2.0 protocol */#define SMBtrans2        0x32   /* TRANS2 protocol set */#define SMBtranss2       0x33   /* TRANS2 protocol set, secondary command */#define SMBfindclose     0x34   /* Terminate a TRANSACT2_FINDFIRST */#define SMBfindnclose    0x35   /* Terminate a TRANSACT2_FINDNOTIFYFIRST */#define SMBulogoffX      0x74   /* user logoff *//* these are the TRANS2 sub commands */#define TRANSACT2_OPEN          0#define TRANSACT2_FINDFIRST     1#define TRANSACT2_FINDNEXT      2#define TRANSACT2_QFSINFO       3#define TRANSACT2_SETFSINFO     4#define TRANSACT2_QPATHINFO     5#define TRANSACT2_SETPATHINFO   6#define TRANSACT2_QFILEINFO     7#define TRANSACT2_SETFILEINFO   8#define TRANSACT2_FSCTL         9#define TRANSACT2_IOCTL           10#define TRANSACT2_FINDNOTIFYFIRST 11#define TRANSACT2_FINDNOTIFYNEXT  12#define TRANSACT2_MKDIR           13/* these are the trans2 sub fields for primary requests */#define smb_tpscnt smb_vwv0#define smb_tdscnt smb_vwv1#define smb_mprcnt smb_vwv2#define smb_mdrcnt smb_vwv3#define smb_msrcnt smb_vwv4#define smb_flags smb_vwv5#define smb_timeout smb_vwv6#define smb_pscnt smb_vwv9#define smb_psoff smb_vwv10#define smb_dscnt smb_vwv11#define smb_dsoff smb_vwv12#define smb_suwcnt smb_vwv13#define smb_setup smb_vwv14#define smb_setup0 smb_setup#define smb_setup1 (smb_setup+2)#define smb_setup2 (smb_setup+4)/* these are for the secondary requests */#define smb_spscnt smb_vwv2#define smb_spsoff smb_vwv3#define smb_spsdisp smb_vwv4#define smb_sdscnt smb_vwv5#define smb_sdsoff smb_vwv6#define smb_sdsdisp smb_vwv7#define smb_sfid smb_vwv8/* and these for responses */#define smb_tprcnt smb_vwv0#define smb_tdrcnt smb_vwv1#define smb_prcnt smb_vwv3#define smb_proff smb_vwv4#define smb_prdisp smb_vwv5#define smb_drcnt smb_vwv6#define smb_droff smb_vwv7#define smb_drdisp smb_vwv8/* where to find the base of the SMB packet proper */#define smb_base(buf) (((char *)(buf))+4)#define SUCCESS 0    /* The request was successful. */#define ERRDOS 0x01  /*  Error is from the core DOS operating system set. */#define ERRSRV 0x02  /* Error is generated by the server network file manager.*/#define ERRHRD 0x03  /* Error is an hardware error. */#define ERRCMD 0xFF  /* Command was not in the "SMB" format. *//* structure used to hold the incoming hosts info */struct from_host {    char   *name;			/* host name */    char   *addr;			/* host address */    struct sockaddr_in *sin;		/* their side of the link */};#define MAX_DGRAM_SIZE 576#define MIN_DGRAM_SIZE 12#define NMB_PORT 137#define DGRAM_PORT 138#define SMB_PORT 139enum name_source {LMHOSTS, REGISTER, SELF, DNS, DNSFAIL};enum node_type {B_NODE=0, P_NODE=1, M_NODE=2, NBDD_NODE=3};enum packet_type {NMB_PACKET, DGRAM_PACKET};/* a netbios name structure */struct nmb_name {  char name[17];  char scope[64];  int name_type;};/* a resource record */struct res_rec {  struct nmb_name rr_name;  int rr_type;  int rr_class;  int ttl;  int rdlength;  char rdata[MAX_DGRAM_SIZE];};/* define a nmb packet. */struct nmb_packet{  struct {    int name_trn_id;    int opcode;    BOOL response;    struct {      BOOL bcast;      BOOL recursion_available;      BOOL recursion_desired;      BOOL trunc;      BOOL authoritative;    } nm_flags;    int rcode;    int qdcount;    int ancount;    int nscount;    int arcount;  } header;  struct {    struct nmb_name question_name;    int question_type;    int question_class;  } question;  struct res_rec *answers;  struct res_rec *nsrecs;  struct res_rec *additional;};/* rfc1191 */struct mtu_discovery {	short unused;	short nexthopmtu;};#define EXTRACT_SHORT(p)	((u_short)ntohs(*(u_short *)p))#define EXTRACT_LONG(p)		(ntohl(*(u_int32 *)p))/* pulled from tcpdump *//* XXX probably should use getservbyname() and cache answers */#define TFTP_PORT 69		/*XXX*/#define NAMESERVER_PORT 53#define KERBEROS_PORT 88	/*XXX*/#define SUNRPC_PORT 111		/*XXX*/#define SNMP_PORT 161		/*XXX*/#define NTP_PORT 123		/*XXX*/#define SNMPTRAP_PORT 162	/*XXX*/#define RIP_PORT 520		/*XXX*/#define KERBEROS_SEC_PORT 750	/*XXX*//* TICK_TIME in ms * time to wait between Read Requests * if no packet has been sniffed.. */#define TICK_TIME 10#define OUR_IP	(gOurIP ? gOurIP : rkGetOurIP())#define OUR_MAC (gOurMAC ? gOurMAC : rkGetOurMAC())#define MAXHOSTNAMELEN	64	/* max length of hostname */typedef struct _RIPDERM { 	char *mBuf;	int mLen;} RIPDERM, *PRIPDERM;//typedef list<PRIPDERM> VRIP;//typedef list<char *> NAMELIST;//typedef map<unsigned long, NAMELIST *> LMHOSTLIST;//typedef map<unsigned long, __int64> MACMAP; /* note that masking is required *///void SendThruFilterRaw(const char * p, int len);//void SendHex(char *theAsciiString);//void SendRaw(const char * theData, int theLen);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?