푸르미르

pwnable.kr 13. lotto 본문

SECURITY/pwnable

pwnable.kr 13. lotto

((•_•)) 2021. 5. 11. 20:09

 

cat lotto.c

 

play함수
help함수와 main함수

 

중요한것은 play함수인데 눈빠지도록 play함수 코드를 살펴보자^^.

또 //calculate lotto score주석 이후의 코드를 보면, 루프문이 36번 돌게되는데,

lotto[i]의 값이 submit[j]의 값과 같으면 match값이 1씩 올라간다. match값이 6이 될 경우 플래그가 출력된다. 

만약 내가 submit배열에 111111을 넣으면 lotto배열에 1이 한개라도 있을 경우 match값이 6이 될 것이다.

 

로또 번호 하나만 맞추면 바로 끝나는 게임인듯하다.

일단 로또 번호를 int형이 아닌 char로 받는것이 이상하다. 무슨 연관이있을까?

구글링을 해보니 아스키 코드가 연관되어있는 것을 확인하였다.

 

 

나무위키

내가 만약 1을 입력했을 경우 char로 인식되어지기 때문에 아스키 코드 49가 입력되게 된다.

코드를 보면 45 이하가 되는 char형을 입력받도록 하였기 때문에 아스키 코드가 45이하인 문자를 입력해보도록하겠다.

 

와 30번 시도한듯;;

flag값은 sorry mom... I FORGOT to check duplicate numbers... :(

'SECURITY > pwnable' 카테고리의 다른 글

pwnable.kr 15. cmd2  (0) 2021.05.18
pwnable.kr 14. cmd1  (0) 2021.05.18
pwnable.kr 12. blackjack  (0) 2021.05.11
pwnable.kr 11. coin1  (0) 2021.05.05
pwnable.kr 10. shellshock  (0) 2021.05.05