random 카드 생성할 때 time함수로 시드 값은 랜덤으로 잘 설정해서 이 부분을 조작할 수는 없다
사용자의 입력값을 받는 부분은
Y/N, 게임 시작할 때 1, 2, 3받기, hit/stay 여부, 그리고 금액 베팅할 때 뿐이다.
flag 출력 조건은 보유 금액이 백만 달러를 넘어가면 되는데, 입력 부분에서 검증 안된 부분을 찾아보면
int betting() //Asks user amount to bet
{
printf("\n\nEnter Bet: $");
scanf("%d", &bet);
if (bet > cash) //If player tries to bet more money than player has
{
printf("\nYou cannot bet more money than you have.");
printf("\nEnter Bet: ");
scanf("%d", &bet);
return bet;
}
else return bet;
} // End Function
베팅 금액이 단순히 cash보다 큰지만 확인하고, 이기거나 졌을 때 단순히 그 값을 더하거나 뺀다.
음수를 넣어도 잘 동작하기 때문에 이를 노려서 overflow를 발생시켜 flag 조건을 만족하게 만들 수 있다.
Woohoo_I_am_now_a_MILL10NAIRE!