728x90
key ^ random 한 것이 0xcafebabe 일 경우에 플래그 값을 얻을 수가 있습니다.
key는 사용자의 입력으로 받고, rand() 함수에 대해 알기만 하면 문제를 쉽게 해결 할 수 잇을 것 같습니다.
rand()
rand 함수는 랜덤한 숫자를 반환하는 함수입니다.
그런데 프로그램이 생성될 때 값이 정해지기 때문에 프로그램을 여러번 실행시켜도
동일한 값이 나옵니다.
rand함수는 내부적으로 어떤 srand의 매개변수로 들어온 seed 값과 매칭되는 숫자가 정해집니다.
그래서 seed 값에 의해서 rand 함수의 결과값이 변할 수 있습니다.
https://blockdmask.tistory.com/308
브포를 걸고 DWORD PTR [rbp-0x1c], eax 이므로 eax값이 어떤 값인지 알아보면 됩니다.
0x6b8b4567 입니다. 다시 실행을 해서 봐보면, 똑같습니다.
0x6b8b4567 ^ 0xcafebabe 를 하면 됩니다.
2708864985
728x90