所以我在玩 Olly 调试器,嗅探我能找到的关于 windows 的信息,然后按下 M 按钮,它弹出了那个内存映射窗口。所以我在谷歌上搜索了一些关于这个主题的文章,我发现我实际上可以写到我试过的 64K 以上的地址,而且很好。为什么它不起作用。关于那些较低的 2GB 空间:
为什么会有这些差距?例如,有 0x10000-0x1FFFF R/Wable 空间,然后没有 128K,然后是一些可读空间。我的意思是这已经被正确分页了,所以过去是否有像物理空间这样的东西并不重要(更不用说 0x20000-0x40000 应该完全可以读/写),为什么有人会决定不如此随意地使用一些地址空间?很可能我只是感到困惑,因为在来自 olly 调试器的内存映射中,很多行在列显示“包含”的地方都是空白的。是否有一些参考我可以从 olly 中针对这个内存映射,找出哪些空间有什么用途,因此是这样还是不是这样分页?
假设我真的不会搞砸关于内存管理的任何事情,使用较低的内存而不是使用堆为 Windows 编写程序是否可以,或者我会遇到一些问题吗?
感谢您阅读这个问题。
编辑