*
*/
+#ifndef MAIN_H
+#define MAIN_H
+
#define _GNU_SOURCE
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
+#include <sys/socket.h>
+#include <time.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <pcap.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/ioctl.h>
+#include <sys/time.h>
+
+#include <linux/wireless.h>
+
+#include "parse.h"
+
+#include "event.h"
+#include "display.h"
+#include "input.h"
+#include "list.h"
#define SYSCALL_MAX 32
+#define MESSAGE_MAX 64
+#define CHANNEL_MAX 13
#define MAX_DEV_CHARS 6
-#define SELECT_SEC 0
-#define SELECT_USEC 200000
+#define MAX_SYSCALL_CHARS 128
+
+#define HOP_SEC 0
+#define HOP_USEC 200000
+
+#define GUI_OFFSET_STA 1
+#define GUI_OFFSET_SSID 19
+#define GUI_OFFSET_AP 39
+#define GUI_OFFSET_WEP 44
+#define GUI_OFFSET_MGMT 50
+#define GUI_OFFSET_CTRL 57
+#define GUI_OFFSET_DATA 64
+#define GUI_OFFSET_ACTIVE 71
+#define GUI_OFFSET_SIGNAL 77
+
+#define HDW_SNIFF_MAX_WIDTH (GUI_OFFSET_SIGNAL+5)
+#define HDW_SNIFF_MAX_HEIGHT 8
/* modes */
-#define MONITORING_MODE 0x01
-#define MANAGED_MODE 0x00
-#define QUIT_MODE 0x02
+#define MODE_IEEE80211 (1<<0)
+#define MODE_PRISM (1<<1)
+#define MODE_QUIT (1<<2)
+#define MODE_HEXOUT (1<<3)
+#define MODE_ASCIIOUT (1<<4)
#define MAX_BYTE_WEP 13 /* maximal 104 bit key */
+#define VIEW_ALL 0x00
+#define VIEW_SINGLE 0x01
+
/* type definitions */
typedef struct s_info {
- unsigned char mode; /* monitoring/managed mode */
+ t_event event;
+ t_display display;
+ char *clean_line;
+ int c_line,c_page;
+ unsigned char view;
+ t_input input;
+ int count; /* count packages */
+ int count_m;
+ int count_c;
+ int count_d;
+ unsigned char mode; /* ieee802.11/prism mode */
char device[MAX_DEV_CHARS]; /* sniffed devie */
- int logfile_fd; /* file descriptof for logfile */
- int pcap_fd; /* fd for reading pcap events */
- char key[13]; /* wep key */
-
+ int log_fd; /* file descriptor for logfile */
+ char dump_file[128];
+ pcap_dumper_t *dump_handle;
+ int current_channel;
+ int channel_hop_fd;
+ pcap_t *pcap_handle;
+ t_list sniffed_sta;
+ int view_table;
} t_info;
-
/* function prototypes */
-int usage(void);
+void parse_package(unsigned char *ptr,const struct pcap_pkthdr *pcap_header,const unsigned char *package);
+int display_console(t_info *info,char *string);
+
+#endif