【问题标题】:Nasm - "real" randomness via uninitialized variables?Nasm - 通过未初始化变量的“真实”随机性?
【发布时间】:2020-02-03 11:43:33
【问题描述】:

我正在尝试在Nasm 中构建一个数字生成器。为此,我想声明一些“变量”(我知道 Nasm 只有标签,没有变量)但没有定义它们。问题是在.bss 中声明变量时,它们会自动被null 初始化。

我的问题是:
有没有办法让变量在 null 初始化之前保留它们保留内存的值?

操作系统是 Windows。

【问题讨论】:

  • 即使你这样做了,它也不太可能是一个特别好的随机数。非确定性与“随机”不同。
  • 如果您需要随机数,您应该使用随机数生成器。 :)

标签: windows assembly random initialization nasm


【解决方案1】:

没有。出于安全原因,操作系统会清除它映射到您的进程中的所有内存页面。

如果您有足够新的处理器,请考虑使用rdrand 指令。或者,使用 Win32 API 中的 CryptGenRandom 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 2016-07-31
    相关资源
    最近更新 更多