代码之家  ›  专栏  ›  技术社区  ›  Kirill V. Lyadvinsky

Windows中的堆随机化

  •  0
  • Kirill V. Lyadvinsky  · 技术社区  · 16 年前

    视窗7有 特征。我怎么办?它们是如何影响我的应用程序的性能的?我在哪里可以找到更多关于它如何工作的信息?

    我使用Visual Studio 2008开发C++程序。我找不到任何编译器的选项。

    2 回复  |  直到 16 年前
        1
  •  2
  •   Kirill V. Lyadvinsky    16 年前

    好的,堆随机化和堆栈随机化是Windows功能,但必须在链接时为每个进程显式启用。MarkRussinovich在他的文章中描述了它是如何工作的 5-th Windows Internals

    堆栈随机化包括首先选择32个可能的堆栈位置中的一个,这些位置由64 KB或256 KB分隔。通过查找第一个适当的可用内存区域,然后选择 x x

    最后,在用户模式下创建时,ASLR会随机化初始进程堆(和后续堆)的位置。这个 RtlCreateHeap

        2
  •  0
  •   Goz    16 年前

    当然这只是操作系统的一个功能?这一点也不应该打扰你。操作系统会移动你的应用程序,只要你不认为你的应用程序被加载到一个特定的内存地址(你真的不应该这么认为),你就不会遇到任何问题。