Shub-nigurrath
May 16th, 2005, 08:31
Hi all,
just a simple question I'm wondering about.
I know different methods useful to execute ring0 code from inside a ring3 application, using INT3, LDT (Locale Descriptor Table) and the SEH, but all these methods are documented to worn only in Win9x/ME systems and not on XP system.
According to documentation in XP systems all these tricks are not working because this possibility has been removed from the O.S.
The only way left to switch to ring0 seems to use .sys external files or vdx drivers.
Is that true?
For example I was looking how hardware breakpoint works and the debug registers can be only modified in ring0. This would mean that to manage debug registers you would need ring0 code and thus a .sys driver. But Olly for example doesn't have any .sys driver inside (nor in the resources), so it much probably uses another trick..
So here's where my theory fails. Where am I wrong?
just a simple question I'm wondering about.
I know different methods useful to execute ring0 code from inside a ring3 application, using INT3, LDT (Locale Descriptor Table) and the SEH, but all these methods are documented to worn only in Win9x/ME systems and not on XP system.
According to documentation in XP systems all these tricks are not working because this possibility has been removed from the O.S.
The only way left to switch to ring0 seems to use .sys external files or vdx drivers.
Is that true?
For example I was looking how hardware breakpoint works and the debug registers can be only modified in ring0. This would mean that to manage debug registers you would need ring0 code and thus a .sys driver. But Olly for example doesn't have any .sys driver inside (nor in the resources), so it much probably uses another trick..
So here's where my theory fails. Where am I wrong?