#include <conio.h>
#include <windows.h>
#include <stdio.h>
int main()
{
char input[255];
int i = 0;
for(;;i++) /* Infinite loop, exited when RETURN is pressed */
{
char temp;
temp = getch(); /* Get the current character of the password */
if (GetAsyncKeyState (VK_RETURN)) /* If the user has pressed return */
{
input[i]='\0';
break;
}
input[i] = temp;
printf("*"); /* Print a star */
}
//printf("%s",input);
if(strcmp(input,"kamal")==0)
{
printf("ACCEPTED");
}
else
printf("not");
_getch();
return EXIT_SUCCESS; /* Program was executed successfully */
}
Это мой код. Как я могу предотвратить переполнение буфера, если я буду вводить пароль больше, тогда моя программа выйдет из строя. есть ли в любом случае я могу решить эту проблему?Как предотвратить маскирование паролей из bufferoverflow
Вам нужно остановить бесконечную петлю в разумной точке. – Paul
* «Если я буду вводить пароль больше, тогда моя программа выйдет из строя» * Это не английский ... Не могли бы вы прояснить причину сбоев, так как это не совсем понятно? В противном случае вам будет сложно больше – Veger
, если у меня больше персонажа, чем 255, он сбой, и это делает мою программу уязвимой. –