Window memory layout

So, I played with the Olly debugger, sniffing what else I can learn about windows, and pressed this M button, and he displayed this memory card window. So I was looking for some articles on this subject, and I found out that I can write addresses above 64K, which I tried and well ... why not work. About those bottom 2 GB of space:

  • Why are these gaps? For example, there is 0x10000-0x1FFFF R / Wable, then there is nothing 128K, and then some simply readable space. I mean, this is already correctly written, so it doesn’t matter if there was something in the past, like in physical space (not to mention that 0x20000-0x40000 should be totally normal for r / w anyway ), why did someone decide not to use some address space so randomly? Most likely, I'm just confused, because on this memory card from the debugging debugger, many lines remain empty, where the column says "Contains". Is there any link that I could just contrast this memory card with olly and find out what kind of space has some purpose and, thus, is it or not called like that?

  • Suppose I really wouldn't mess up anything for memory management, is it okay to write Windows programs using this lower memory instead of using heap, or can I run into some problems?

Thanks for reading this question.

EDIT

Ah here we go with that at 0x10000, and it is also likely why this page is allowed for writing.

+5
source share
2 answers

You don't seem to have a focused question, so it's hard to give a valuable answer. However, you seem to mean the question, how does Windows display user memory space?

-, - 64 - NULL. , . , . , Windows SEGFAULT. .

, . , , , , , , 99% . , (), , (, 4K, , 64K ) . .

. . . , , .

- . - , . .

.

( ), , . , , , . , . , , , , , .

+3

. , , (BIOS ) . ( ), . , .

Windows, - OS ( , usermode) , , , , ( ) .

, , .

+1

All Articles