所以我在做 2019 picoCTF 二进制挑战 seed-sPRiNG,我 用这段代码写了这篇文章:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main ()
{
int i;
srand(time(0));
for (i = 0; i < 30; i++)
{
printf("%d\n", rand() & 0xf);
}
return 0;
}
所以我想在python中实现相同的。起初我使用了 random 模块,但意识到 C rand 和 python 在它们的实现中相距甚远,所以我决定使用 ctypes:
#!/usr/bin/python3
from ctypes import CDLL
libc = CDLL("libc.so.6")
libc.srand(libc.time(0))
for i in range(30):
print(libc.rand() % 0xf)
但是当我同时运行它们时我仍然得到不同的输出,我能解释一下为什么会这样吗