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 |