난수를 발생하는 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

+ Recent posts