TheUsualSuspect
November 9th, 2010, 13:04
First of all, hello everyone!
While I'm rather familiar with debugging and reverse engineering in ring3, I finally made the leap into the ring0 world for a private project and so far it seems it is as fascinating as I imagined it to be. It took me quite some time to get my setup running (WinDbg, VirtualKD, VirtualBox) but eventually it worked. Now my first problem is with WinDbg.
I use VirtualKD to do remote kernel debugging and am interested in the inner workings of win32k.sys. But when I fire up WinDbg, something weird happens:
I have no clue what this means. From what I know kernel pages can be paged out and thus might be unaccessible. I tried to use the .pagein command but it just works on virtual memory addresses.
What's even more weird is that when I do the same thing on the box itself with LiveKd, I can look at the memory but obviously don't set breakpoints and trace the code flow.
As I said I'm pretty much a beginner when it comes to kernel debugging and I have no idea what this could be. Any concept I'm missing?
While I'm rather familiar with debugging and reverse engineering in ring3, I finally made the leap into the ring0 world for a private project and so far it seems it is as fascinating as I imagined it to be. It took me quite some time to get my setup running (WinDbg, VirtualKD, VirtualBox) but eventually it worked. Now my first problem is with WinDbg.
I use VirtualKD to do remote kernel debugging and am interested in the inner workings of win32k.sys. But when I fire up WinDbg, something weird happens:
Code:
kd> x win32k!NtUserInvalidateRect
bf8153d5 win32k!NtUserInvalidateRect = <no type information>
kd> u win32k!NtUserInvalidateRect
win32k!NtUserInvalidateRect:
bf8153d5 ?? ???
^ Memory access error in 'u win32k!NtUserInvalidateRect'
kd> dd win32k!NtUserInvalidateRect
bf8153d5 ???????? ???????? ???????? ????????
bf8153e5 ???????? ???????? ???????? ????????
bf8153f5 ???????? ???????? ???????? ????????
bf815405 ???????? ???????? ???????? ????????
bf815415 ???????? ???????? ???????? ????????
bf815425 ???????? ???????? ???????? ????????
bf815435 ???????? ???????? ???????? ????????
bf815445 ???????? ???????? ???????? ????????
I have no clue what this means. From what I know kernel pages can be paged out and thus might be unaccessible. I tried to use the .pagein command but it just works on virtual memory addresses.
What's even more weird is that when I do the same thing on the box itself with LiveKd, I can look at the memory but obviously don't set breakpoints and trace the code flow.
As I said I'm pretty much a beginner when it comes to kernel debugging and I have no idea what this could be. Any concept I'm missing?