diff --git a/.gitignore b/.gitignore index 88d050b..09a756f 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -main \ No newline at end of file +./main \ No newline at end of file diff --git a/main b/main index 386fb97..b69e71b 100755 Binary files a/main and b/main differ diff --git a/src/main.c b/src/main.c index 48d52e6..3025cd4 100644 --- a/src/main.c +++ b/src/main.c @@ -279,11 +279,9 @@ int argparse(int argc, char *argv[]) { /* look for invalid arguments */ - for (int j = 1; j < argc; j++) { - if (strcmp(argv[j], "--wordlist") != 0 && strcmp(argv[j-1], "--wordlist") != 0 && strcmp(argv[j], "--verbose") != 0 && strcmp(argv[j], "--help") != 0) { - fprintf(stderr, "Invalid argument %s\n", argv[j]); - flag_error = 1; - } + if (strcmp(argv[i], argv[0]) != 0 && strcmp(argv[i], "--wordlist") != 0 && strcmp(argv[i-1], "--wordlist") != 0 && strcmp(argv[i], "--verbose") != 0 && strcmp(argv[i], "--help") != 0 && strcmp(argv[i], "-h") != 0 && strcmp(argv[i], "-w") != 0 && strcmp(argv[i-1], "-w") != 0 && strcmp(argv[i], "-v") != 0) { + fprintf(stderr, "Invalid argument %s\n", argv[i]); + flag_error = 1; } /* @@ -294,6 +292,11 @@ int argparse(int argc, char *argv[]) { print_help_and_usage(); return 2; } + // -------------------------------------------------------------- + if (strcmp(argv[i], "-h") == 0) { + print_help_and_usage(); + return 2; + } /* getting the debug flag for debug printing @@ -301,6 +304,10 @@ int argparse(int argc, char *argv[]) { if (strcmp(argv[i], "--verbose") == 0 && flag_verbose == 0) { flag_verbose = 1; } + // -------------------------------------------------------------- + if (strcmp(argv[i], "-v") == 0 && flag_verbose == 0) { + flag_verbose = 1; + } /* getting the path to the wordlist @@ -316,6 +323,18 @@ int argparse(int argc, char *argv[]) { } else if (strcmp(argv[i], "--wordlist") != 0 && flag_worldlist == 0) { strcpy(wordlist_path, "lib/wordlist"); } + // -------------------------------------------------------------- + if (strcmp(argv[i], "--wordlist") == 0 && flag_worldlist == 0) { + flag_worldlist = 1; + if (argv[i+1] != NULL) { // if there is an argument present after that, read it as the wordlist path + strcpy(wordlist_path, argv[i+1]); + } else { + fprintf(stderr, "Missing argument after %s\nUsage: %s \n", argv[i], argv[i]); + flag_error = 1; + } + } else if (strcmp(argv[i], "--wordlist") != 0 && flag_worldlist == 0) { + strcpy(wordlist_path, "lib/wordlist"); + } } if (file_exists(wordlist_path) == 0) {