ec_main.h
上传用户:nilegod
上传日期:2007-01-08
资源大小:220k
文件大小:3k
源码类别:

网络截获/分析

开发平台:

C/C++

  1. #ifdef HAVE_CONFIG_H
  2.    #include <config.h>     // autoheader   -I.
  3. #endif
  4. #ifdef HAVE_ATEXIT
  5.    #define exit_func(x)    atexit(x)
  6. #else
  7.    #define exit_func(x)
  8. #endif
  9. #define VERSION "0.4.0"
  10. #define PROGRAM "ettercap"
  11. #define AUTHORS "ALoR & NaGA"
  12. #define loop for(;;)
  13. extern char *program_argv0;
  14. #include <sys/types.h>
  15. #ifndef HAVE_STRLCAT // missing functions
  16. #include "../missing/strlcat.h"
  17. #endif
  18. typedef struct host_arp          // hosts in LAN info
  19. {
  20.    int port;
  21.    char name[128];
  22.    char ip[16];
  23.    char mac[20];
  24. } HOST;
  25. extern HOST *Host_In_LAN;
  26. extern int number_of_hosts_in_lan;
  27. extern HOST Host_Source;
  28. extern HOST Host_Dest;
  29. typedef struct options_list      // arguments passed on command line
  30. {
  31.    char list:1;
  32.    char arpsniff:1;
  33.    char sniff:1;
  34.    char macsniff:1;
  35.    char normal:1;
  36.    char check:1;
  37.    char plugin:1;
  38.    char hexview:1;
  39.    char silent:1;
  40.    char udp:1;
  41.    char finger:1;
  42.    char link:1;
  43.    char collect:1;
  44.    char broadping:1;
  45.    char netiface[10];
  46.    char netmask[16];
  47. } OPTIONS;
  48. extern OPTIONS Options;
  49. #define MAX_DATA 2000
  50. typedef struct data_connection   // data through the pipe with illithid
  51. {
  52.    char ip_source[16];
  53.    char ip_dest[16];
  54.    int source_port;
  55.    int dest_port;
  56.    u_long seq;
  57.    u_long ack_seq;
  58.    char flags;
  59.    char proto;
  60.    int datasize;
  61.    char data[MAX_DATA];     // FIXME: to be resized...
  62. } SNIFFED_DATA;
  63. typedef struct {
  64.    int Host_Index1;
  65.    int Host_Index2;
  66.    u_char mode;
  67. } SniffingHost;
  68. typedef struct connection        // connection list
  69. {
  70.    char ip_source[16];
  71.    char ip_dest[16];
  72.    char mac_source[20];
  73.    char mac_dest[20];
  74.    int source_port;
  75.    int dest_port;
  76.    u_long source_seq;
  77.    u_long dest_seq;
  78.    char flags;
  79.    char proto;
  80.    int datalen;
  81.    char status[8];
  82.    char type[18];          // from /etc/services
  83.    char user[30];          // pay attention on buffer overflow !!
  84.    char pass[30];
  85.    char info[100];         // additional info... ( smb domain, http page ...)
  86. } CONNECTION;
  87. typedef struct {                 // buffer structure (ec_buffer.c)
  88.    short size;
  89.    char *data;
  90.    struct BUFFER *next;
  91. } BUFFER;
  92. extern CONNECTION *Conn_Between_Hosts;
  93. extern int number_of_connections;
  94. extern int pipe_with_illithid;
  95. extern int pipe_with_illithid_data;
  96. extern int pipe_inject_stod[2];
  97. extern int pipe_inject_dtos[2];
  98. extern char active_dissector;    // ec_main.c
  99. extern int Connection_Mode;      // ec_illithid.c
  100. #if HAVE_GETTIMEOFDAY
  101.    #define TIME_DECLARE struct timeval start, finish
  102.    #define TIME_START   gettimeofday(&start, 0)
  103.    #define TIME_FINISH  gettimeofday(&finish, 0)
  104.    #define TIME_ELAPSED (finish.tv_sec + finish.tv_usec/1.0e6)-(start.tv_sec  + start.tv_usec/1.0e6)
  105. #else
  106.    #define TIME_DECLARE float start, finish
  107.    #define TIME_START   start=clock()
  108.    #define TIME_FINISH  finish=clock()
  109.    #define TIME_ELAPSED ((finish-start)/CLOCKS_PER_SEC)
  110. #endif
  111. #define MAX_INJECT 500  // max number of injected char
  112. #define ARPBASED  0
  113. #define PUBLICARP 1
  114. #define IPBASED   2
  115. #define MACBASED  3
  116. /* EOF */