lok2h4rd 2022. 3. 23. 19:18

problem

 

#include <stdio.h>

int main(){
	unsigned int random;
	random = rand();	// random value!

	unsigned int key=0;
	scanf("%d", &key);

	if( (key ^ random) == 0xdeadbeef ){
		printf("Good!\n");
		system("/bin/cat flag");
		return 0;
	}

	printf("Wrong, maybe you should try 2^32 cases.\n");
	return 0;
}

랜던 값을 생성하는데 시드값을 설장해주지 않으면 값이 고정되기 때문에 gdb로 값을 얻어 0xdeadbeef와 xor수행

 

 

 

flag