Page 1 of 1

Win9x memory protection

Posted: Sun Oct 07, 2007 11:25 am
by ManOfSteel
Hello,

Why are system structures like the GDT and the IDT under Win9x unprotected, allowing the user to alter and overwrite sensitive data. How were the paging system and memory protection implemented.

Thank you in advance.

Posted: Sun Oct 07, 2007 4:37 pm
by Crazed123
I believe they go unprotected to provide backwards-compatibility with DOS.

Yes, it's a horrible design. Let's not emulate it.

Posted: Tue Oct 09, 2007 6:10 am
by ManOfSteel
I believe they go unprotected to provide backwards-compatibility with DOS.
How so? I know they use some "dirty" tricks like hidden API with ordinal values only or VxD calls inside kernel32.dll and similar libraries to call old DOS functions (as wrappers), but what does this have to do with memory protection (eg: paging)?
Let's not emulate it.
Don't worry I won't. I just want to know why it works so bad. What mistakes did MS do, what protections did they badly implement, what did they miss.
So could you give more explanations? I found nothing on google.

Posted: Tue Oct 09, 2007 9:44 am
by Colonel Kernel
Crazed123 wrote:I believe they go unprotected to provide backwards-compatibility with DOS.
I think it has more to do with 16-bit Windows compatibility than DOS compatibility. DOS apps run in V8086 mode in Windows 9x, while Win16 apps all expect to run in the same (16-bit) protected-mode address space (although they use different segments for some things).

Posted: Tue Oct 09, 2007 1:17 pm
by Crazed123
Colonel Kernel wrote:
Crazed123 wrote:I believe they go unprotected to provide backwards-compatibility with DOS.
I think it has more to do with 16-bit Windows compatibility than DOS compatibility. DOS apps run in V8086 mode in Windows 9x, while Win16 apps all expect to run in the same (16-bit) protected-mode address space (although they use different segments for some things).
Ooohhh...

And the problem really comes more from the protection mechanisms that they didn't implement than the ones they did.