【发布时间】:2017-11-22 10:57:50
【问题描述】:
我有这个 C 代码,我想知道是否可以绕过这个检查?
int fd, password, input;
fd = open("/dev/urandom", 0);
read(fd, &password, 4);
scanf("%d", &input);
if (password == input)
{
printf("OK\n")
}
或者是否可以预测 urandom 值?
【问题讨论】:
-
您应该在
open()的第二个参数中使用O_RDONLY而不是硬编码的 0。 -
如果
sizeof(int) != 4会发生什么?