static int checkPassword(char* user_pw) {
char dummy[128];
int accept = 0;
char pw[8];
char len;
char* correct_pw = "xf35+";
memset(pw, 0, sizeof(pw));
memset(dummy, 0, sizeof(dummy));
len = strlen(user_pw);
if (len < 8) {
strcpy(pw, user_pw);
}
if (strcmp(pw, correct_pw) == 0) {
accept = 1;
}
return accept;
}
int main(int argc, char* argv[]) {
// Where argv[3] should be password
// ...
if (strlen(argv[3]) > 128) {
fprintf(stderr, "Password is too long!\n");
return 1;
}
if (checkPassword(argv[3]) == 0) {
fprintf(stderr, "Password is incorrect!\n");
return 1;
}
// ...
}
Пароль здесь жестко запрограммирован, но есть ли способ обойти проверку пароля?Я заметил, что "len" объявлен как char, но до сих пор точно не знаю, как решить эту проблему