C语言 冻结时间以获得相同的随机结果



在大学学习第一门编程课程时,我们学习了时间作为rand函数的种子值被引入,以便在每次代码运行时给出随机值。如果我可以设定时间并在每次点击游戏时随机获得关卡,那么我是否总是能够获得相同的关卡?如果是,有什么办法可以这么做吗?

如果游戏使用从运行时时间戳中获得的伪随机数生成器,那么是的,如果你设法在每次游戏开始时将时间设置为相同的值,那么你应该得到相同的关卡。

可能这样做的方法是拦截对get system time系统调用的调用,并将时间设置为当时的特定值,并让其余部分保持不变。

您可以尝试使用IDA Pro (https://www.hex-rays.com/products/ida/)或其他反汇编器/调试器。我还发现这本书是一本关于用IDA Pro (http://www.amazon.com/Reversing-Secrets-Engineering-Eldad-Eilam/dp/0764574817)破解的有趣的书

我怀疑你不太可能用足够的粒度来冻结时间,除非游戏被编码为使用秒而不是msec或usec。问它将需要一个硬件中断从鼠标,磁盘,显示网络等,使这个不确定性。

不要作弊……: -)

最新更新