Thanks to Bercea, i have read the wdk document and Microsoft windows
internals,Fourth edition, even the intel mamual Volume 3:
System Programming Guide, but that all do not tell me the answer:),maybe i
am not smart enough.
Tim, your wrote:
What can it possibly do? As I said, this is why rootkits and hooking
are so dangerous. If you have a solution, believe me, Microsoft is
interested in hearing about it.
I am not concerning how rootkits can subvert windows system, because in
kernel mode, CPU is in Ring0, or CPU instructions can be executed, like
anton have said, the driver even can change certain CR0 regester bit to
disable the page protect function of the CPU. what i concern is that the
driver can use an MDL to get a virtual address which mapped to physical
address that describes the system key structures and can write the dangerous
memory. In my opinion, for system point of view(VMM), the virtaul address
that i(VMM) return to you which mapped to system key structure should not be
writable. I means from MmProbeAndLockPages and MmMapLockedPagesSpecifyCache
functions, you can get the virtual address that mapped to the address like
SSDT , but they should be read only, want it to writalbe, no way!! Repeated
again, the given virtual address that get from VMM should be read only if
they are mapped to the system key structure, the system should really assure
this, isn’t it?
thanks
Ma
2008/9/26 Tim Roberts
> Carleton Ma wrote:
> > Tim, good reply. thanks. yeh, the same RAM be refered by two
> > PTE(remember the virtual address i mentioned is the system address
> > like IDT address or SSDT address), and the two PTE has different
> > protection properties: one has read only property and one has writable
> > property, then if the driver write the RAM, e.g. a driver write the
> > SSDT(assume), let the service routine address be itself’s, in this
> > case, what should the system do? It continue think that the SSDT is
> > real only, just call the service routine that has been replaced?
>
> What can it possibly do? As I said, this is why rootkits and hooking
> are so dangerous. If you have a solution, believe me, Microsoft is
> interested in hearing about it.
>
> Their approach to this in the x64 case is to periodically scan the SSDT
> to see if it has been changed. I don’t know whether they compare
> individual addresses or take a checksum.
>
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>