random의 코드이다.

key를 입력받고 key와 random을 xor한 결과가 0xdeadbeef면 된다.



GDB로 열어보니, 비교하는 부분은 main+59이고 rbp-8, rbp-4를 비교하는 것으로 보인다.


그래서 scanf 에 BP를 걸고 실행했다.




BP가 걸린 곳에서 rbp-8과 rbp-4를 각각 보았더니, 뒤가 0으로 도배된 rbp-8보단 rbp-4쪽이 더 정상적인 수로 보인다.


이 수를 XOR계산기에 넣었다.


400670b526fb88

이 숫자가 XOR했을때 deadbeef가 나오는 숫자다.


반대로 넣어서 정상적으로 출력되는 것도 확인했다.


이 수를 10진수로 바꿔서 입력하면 될 것이다.




18021479654816648이라는 어마무시한 숫자이다.


하지만 입력하면, 



답을 얻을 수 있다.

'pwnable > Toddler's Bottle' 카테고리의 다른 글

[Toddler's Bottle] leg  (0) 2018.05.28
[Toddler's Bottle] input  (0) 2018.05.28
[Toddler's Bottle] passcode  (0) 2018.05.21
[Toddler's Bottle] flag  (0) 2018.05.21
[Toddler's Bottle] bof  (0) 2018.05.19
블로그 이미지

천재보다는 범재

,