반응형
소스코드는 양이 방대해서 생략!
백만장자가 되면 flag를 준다고 합니다. 뭐.. .게임 열심히해서 이겨도 되겠죠 ㅎ..
핵심만 적어드리자면,
게임을 시작하거나 돈을 탕진했을 때 cash 에 500을 채워줍니다. 이건 뭐 규칙이죠.
그리고 이겼을 때는, cash = cash+bet 베팅한 금액을 더해줍니다. 이기면 x2 x3 이런건 없어요.
마지막 핵심인 아래 코드입니다.
1 2 3 4 5 6 7 8 9 | 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 | cs |
자신이 가지고 있는 돈보다 높은 금액을 베팅할 수는 없겠죠.
반복문을 통해서 매번 입력할 때마다 비교를 해주어야 하는데,
if문으로 한 번만 걸러냅니다. 이렇게 되면 베팅금액이 커도 베팅을 할 수 있다는 거죠.
무슨소리냐구요?
bet 금액이 내가 가지고 있는 cash 보다 크다면
"You cannot bet more money than you have" 라는 문구를 띄워줍니다.
그리고 bet변수에 베팅금액을 입력해주죠? 그리고 그것을 retrun 해줍니다.
때문에 큰 액수를 2번 입력하면 베팅을 할 수 있다는 거죠.
500 케쉬가 있습니다.
베팅을 100억 하겠습니다.
if문을 통해 어쩔 수 없이 그냥 return 된 값을 베팅하게 됩니다.
똑같이 100억 했습니다.
승리했습니다.
flag를 얻게되었습니다.
:D
차분한 마음으로 중요 소스코드를
찝어내라는 하나의 문제였네요
반응형
'[ ★ ]Study > War Game' 카테고리의 다른 글
[Toddler's Bottle] pwnable.kr cmd1 풀이 (0) | 2017.09.15 |
---|---|
[Toddler's Bottle] pwnable.kr lotto 풀이 (0) | 2017.09.15 |
[Toddler's Bottle] pwnable.kr shellshock 풀이 (0) | 2017.09.15 |
[Toddler's Bottle] pwnable.kr mistake 풀이 (0) | 2017.09.15 |
[Toddler's Bottle] pwnable.kr leg 풀이 (0) | 2017.09.15 |
댓글