思路
-
这道题主要是对rand()函数的熟悉程度,首先由代码可知我们的目的是使key和random异或后得到固定的一个值,问题是我们怎么知道random的值,从而去找到key的值呢?
rand()函数在之前没有使用srand(),那么设置参数即种子的时候默认1为起始值,那么代表着每一次程序执行时,随机的数是一样的,那么我们当得到rand()函数每一次执行时的值。
- 因此我们很简单的找到了random的值为1804289383,因为异或的反变换为异或,那么key的值就是random异或0xdeadbeef
- 因此我们仅需要输入3039230856即可得到flag