-
[Toddler's Bottle] randomWargame/pwnable.kr Challenge 2019. 2. 19. 10:29
→ 힌트는 아래와 같다. → random.c 소스 파일이다. → 코드를 해석해보면, random 변수에 rand() 함수를 통해 얻은 값과 사용자로부터 입력받은 key 값을 서로 XOR 연산하여 0xdeadbeef 라는 값을 생성하면 flag 값을 볼 수 있는 문제이다. → 여기서 rand() 함수에 주목할 필요가 있다. rand()를 통해 생성되는 난수는 임의로 생성되는 난수이지만 이는 고정적이기 때문에, 다시 난수를 생성해도 고정된 값이 생성된다. 따라서, rand()의 리턴 값을 미리 알아낸다면 random 이라는 난수에 들어갈 값을 알아낼 수 있다. → 다음 난수를 미리 알고 있다면, 미리 입력할 key 값을 xor 연산하여 미리 0xdeadbeef 값으로 맞춘다면 문제는 풀리게 된다. → 리눅스..