IMyoungho 2019. 4. 1. 02:25

이번 문제는 그냥 계산 문제였던 것 같다..

코드를 보도록 하자~



rand()함수를 이용해서 랜덤값을 random이라는 변수에 저장해주고

내가 입력한 key 값과 random값을 XOR 연산해서 0xdeadbeef가 나오면 Flag를 볼 수 있다.


하지만 저런식으로 rand()함수를 사용하게되면 매번 똑같은 값이 나온다는 걸

아주 옛날에 코딩을 하면서 알게된 적이 있었다. 그러므로 gdb로 무슨 값이 저장되는지 보도록 하자.



0x6b8b4567 = 1804289383이 계속 나오게 된다.

그러므로 KEY ^ 1804289383 = 0xdeadbeef(3735928559)가 나오면 된다.

그러므로 3735928559 ^ 1804289383  == KEY가 될 것이다.

3735928559 ^ 1804289383 = 3039230856(KEY)


깔끔하게 FLAG가 보인다.

반응형