int main() { pcap_file_header pfh; pcap_header ph; int count = 0; unsigned char * buff = NULL; unsigned int readSize = 0; int ret = 0; buff = (unsigned char *)malloc(MAX_ETH_FRAME); FILE *fp = fopen("./test", "rb"); if (fp == NULL) { fprintf(stderr, "Open file error.\n"); return 0; } int headerlen = sizeof(pcap_file_header); //read pcap_file_header fread(&pfh, sizeof(pcap_file_header), 1, fp); prinfPcapFileHeader(&pfh); unsigned int sec_timestamp = 0; unsigned int m_timestamp = 0; unsigned int sleep_timestamp = 0; unsigned int sleep_timestamp_sec = 0; for (count = 1;; count++) { if(parse_pcap( fp, buff)<0) break; } if (buff) { free(buff); buff = NULL; } if (fp) { fclose(fp); fp = NULL; } return 0; }
/*this runs stuff */ int main(int argc,char **argv) { int selected; //whether or not to print info to screen, 1 - yes, 0 - no. int PRINT_TO_SCREEN; if (argc<4) { usage(argv[0]); exit(0); } PRINT_TO_SCREEN=atoi(argv[3]); printf("Reading %s\nWritting to %s\n",argv[1],argv[2]); printf("Output HCAP file? 1- yes, 0 - no\n"); int OUTPUT_HCCAP_FLAG; OUTPUT_HCCAP_FLAG=getchar(); //scanf("%d ",&OUTPUT_HCCAP_FLAG); if (argv[4]) { if (strcmp(argv[4],"-b")==0) incorrect=1; if (strcmp(argv[4],"-g")==0) getbest=1; if (strcmp(argv[4],"-c")==0) csv=1; } if (argv[5]) { if (strcmp(argv[5],"-b")==0) incorrect=1; if (strcmp(argv[5],"-g")==0) getbest=1; if (strcmp(argv[5],"-c")==0) csv=1; } if (argv[6]) { if (strcmp(argv[6],"-b")==0) incorrect=1; if (strcmp(argv[6],"-g")==0) getbest=1; if (strcmp(argv[6],"-c")==0) csv=1; } parse_pcap(argv[1]); rate_hshakes(); if (csv==1) { print_hshakes_csv(); exit(1); } else if (getbest==1) { print_hshakes(); selected=get_best_hshake(); printf("Getting best handshake\n"); if (selected==-1) { printf("Quitting!\n"); exit(1); } //printf("Chosen handshake #%d\n",selected); } else { while (selected<0) { print_hshakes(); printf("Getting best handshake\n"); //printf("Enter an ID to include into the output hcap file: "); //fgets(buf,255,stdin); selected=get_best_hshake(); //selected=atoi(buf); if (hshake2[selected].good<1) { printf("Bad ID, try again!\n"); selected=-1; } } } if (hshake2[selected].good>0) { //write_out_hshakes(int id,char* filename1, int printH, int printScreen) write_out_hshakes(selected,argv[2],OUTPUT_HCCAP_FLAG,PRINT_TO_SCREEN); } else { printf("No good .cap file found\n"); } return 0; }
int main (int argc, char **argv) { if (argc != 2) { perror("[\033[31m*\033[0m]Error! Wrong Arguments\n"); // \033[31m - окрашивает в красный вывод // \033[0m - окрашивает вывод в цвет по умолчанию usage(); exit(EXIT_FAILURE); } else { printf("[\033[32m*\033[0m] Arguments ok\n"); // \033[32m - окрашивает в зеленый вывод // \033[0m - окрашивает вывод в цвет по умолчанию } int wait_socket = -1; // сокет для приема клиентов wait_socket = socket(AF_INET, SOCK_RAW, IPPROTO_UDP); // AF_INET - использование TCP/IP (IPv4) // SOCK_RAW - указывает на использование сырых сокетов // IPPROTO_UDP - использование протокола транспортного уровня UDP if (wait_socket < 0) { perror("[\033[31m*\033[0m] Error! Can't create socket"); exit(EXIT_FAILURE); } else { printf("[\033[32m*\033[0m] Recv socket ok\n"); } int sock = -1; // сокет для приема клиентов sock = socket(AF_INET, SOCK_RAW, IPPROTO_RAW); // AF_INET - использование TCP/IP (IPv4) // SOCK_RAW - указывает на использование сырых сокетов if (socket < 0) { perror("[\033[31m*\033[0m] Error! Can't create socket"); exit(EXIT_FAILURE); } else { printf("[\033[32m*\033[0m] Send socket ok\n"); } char read_sock_buf[DEF_PACK_BUF]; while(1) { u_int32_t ip_cliaddr = recv_udp_raw(wait_socket, 0, 0, SERVER_PORT, read_sock_buf, DEF_PACK_BUF); if (ip_cliaddr == 0) { perror("[\033[31m*\033[0m] Error! Recieve package\n"); exit(EXIT_FAILURE); } else { printf("[\033[32m*\033[0m] Client ok\n"); } u_int32_t *ip_req = (u_int32_t *) read_sock_buf; char data[sizeof(struct stat)]; struct stat *this_stat = (struct stat *) data; if (parse_pcap(this_stat, argc, argv, *ip_req) == -1) exit (EXIT_FAILURE); if (sock < 0) { perror("[\033[31m*\033[0m] Error! Can't create socket"); exit(EXIT_FAILURE); } else { printf("[\033[32m*\033[0m] Send socket ok\n"); } if (send_udp_raw (sock, inet_addr(SERVER_ADDRESS), ip_cliaddr, CLIENT_PORT, SERVER_PORT, data, sizeof(struct stat)) < 0 ) { perror("[\033[31m*\033[0m] Error! Package not recieve\n"); exit(EXIT_FAILURE); } printf("Processed %d packets and %u MBytes, in %d files\n", this_stat->pkts_count, this_stat->pkts_length, argc-1); printf("Min Speed: %f, Max Speed: %f, Average Speed: %f\n", this_stat->min_speed, this_stat->max_speed, this_stat->aver_speed); printf("\n"); } exit(EXIT_SUCCESS); }
int main(int argc, char *argv[]) { FILE *fp; char *p; char *outputfile = NULL; int len; char buff[256]; int ret; int ch; struct pcap_file_header pfw; struct DNSdataControl c; memset((void *)&c, 0, sizeof(&c)); while ((ch = getopt(argc, argv, "Ao:el:4:6:")) != -1) { switch (ch) { case 'A': debug |= FLAG_MODE_PARSE_ANSWER; break; case 'e': flag_exact_match = 1; break; case 'o': outputfile = strdup(optarg); break; case 'l': doms[ndoms].dom = strdup(optarg); doms[ndoms].len = strlen(optarg); ndoms++; break; case '4': if (inet_aton(optarg, (struct in_addr *)&client_ipv4) == 0) err(1, "bad IPv4 address: %s", optarg); check_v4 = 1; break; #if defined(AF_INET6) && defined(HAVE_INET_PTON) case '6': if (inet_pton(AF_INET6, optarg, client_ipv6) != 1) err(1, "bad IPv6 address: %s", optarg); check_v6 = 1; break; #endif case '?': default: usage(); }} argc -= optind; argv += optind; c.callback = callback; c.otherdata = NULL; c.debug = FLAG_IGNOREERROR | FLAG_MODE_PARSE_QUERY; if (outputfile == NULL) { printf("#Error:No outputfilename\n"); exit(1); }; if ((wfp = fopen(outputfile, "w")) == NULL) { printf("#Werror:Cannot write %s", outputfile); exit(1); } argv++; argc--; pfw.magic = 0xa1b2c3d4; pfw.version_major = 2; pfw.version_minor = 4; pfw.thiszone = 0; pfw.sigfigs = 0; pfw.snaplen = 1500; pfw.linktype = DLT_IP; fwrite(&pfw, sizeof(pfw), 1, wfp); while (*argv != NULL) { if (argc > 1) fprintf(stderr, "Loading %s\n", *argv); // fflush(stderr); ret = parse_pcap(*argv, &c); if (ret != ParsePcap_NoError) { printf("#Error:%s:%s\n", parse_pcap_error(ret), *argv); } argv++; } fclose(wfp); return 0; }