난수를 발생하는 rand()함수를 이용하여 그 값과 scanf로 입력받은 key값과 xor연산을 한다 그값이 0xdeadbeef라면 flag값이 출력된다.
어떤 난수가 나오는지 구하기 위해 cmp하는 부분에 bp를 걸고 eax값을 확인해본다.
난수값이 0x6b8b4567이라는 것을 알 수 있다.
프로그램을 실행할 때 마다 다른값이 나와야 의미가 있지만 이 프로그램에서는 범위를 설정해 주지 않아서 항상 같은 값이 나온다.
또 한가지
a^b=c
a^c=b
b^c=a
XOR 연산의 특징을 이용하여 0x6b8b4567 ^ 0xdeadbeef = key 값을 구해본다.
0xb526fb88이 나오는데 10진수로 바꿔주고 입력해주면..
'System Hacking > pwable.kr' 카테고리의 다른 글
12.Pwnable blackjack (0) | 2018.02.16 |
---|---|
08.Pwnable leg (0) | 2018.02.15 |
05.Pwnable passcode (0) | 2018.02.15 |
04.Pwnable flag (0) | 2018.02.13 |
03.Pwnable bof (0) | 2018.02.13 |