Hi there,
I have recently taken to using LiveKD to periodically audit my system
manually using debug scripts.
Part of this is constructing the SSDT table using the kernel pointers
keServiceDescriptorTable and kiServiceTable.
The output to show the top of the listing (bottom of the table) is typically
shown below.
[Win 7 SP1 x64]
I have not seen many listings that explain the 3rd listed offset, and some
explanations are hooked/poisoned entries throw to memories outside of kernel
space might be malware.
Is this something abnormal?
What methods are available to confirm the integrity of the SSDT?
Can I trace this offset to resolve the function to identify the endpoint?
Thank you.
[start]
Pointers
nt!KeServiceDescriptorTable = Evaluate expression: -8796062627520 =
fffff800`01cfc940
fffff800`01cfc940 01ac0500 fffff800
fffff800`01ac0500 0417c800 02f40b00
nt!KeServiceDescriptorTableShadow = Evaluate expression: -8796062627456 =
fffff800`01cfc980
fffff800`01cfc980 01ac0500 fffff800
fffff800`01ac0500 0417c800 02f40b00
nt!KeServiceDescriptorTable (length)= Evaluate expression: -8796062627504 =
fffff800`01cfc950
Evaluate expression: 401 = 00000000`00000191
nt!KeServiceDescriptorTableShadow (length)= Evaluate expression:
-8796062627440 = fffff800`01cfc990
Evaluate expression: 401 = 00000000`00000191
nt!KiServiceTable = Evaluate expression: -8796064971520 = fffff800`01ac0500
fffff800`01ac0500 0417c800 02f40b00
nt!KiArgumentTable = Evaluate expression: -8796064968308 = fffff800`01ac118c
fffff800`01ac118c 14000000 00041418
Top of descriptor table only
Evaluate expression: -8796064971520 = fffff800`01ac0500
fffff800`01ac0500 0417c800
fffff800`01ac0504 02f40b00
fffff800`01ac0508 fff6f000 ? this offset cannot be resolved into
a SSDT function
fffff800`01ac050c 02e7b605
fffff800`01ac0510 031b1506
fffff800`01ac0514 03123a05
fffff800`01ac0518 02b9f201
fffff800`01ac051c 02b376c0
fffff800`01ac0520 0313b840
fffff800`01ac0524 03f0e500
fffff800`01ac0528 02c62f00
fffff800`01ac052c 02e70e80
fffff800`01ac0530 02f54700
fffff800`01ac0534 02de8a01
fffff800`01ac0538 02db6c01
fffff800`01ac053c 02d75100
[end]
01 -----------------------------
nt:KiServiceTable Offset: 0417c800
Evaluate expression: -8796060679808 = fffff800`01ed8180
nt!NtMapUserPhysicalPagesScatter:
02 -----------------------------
nt:KiServiceTable Offset: 02f40b00
Evaluate expression: -8796061874768 = fffff800`01db45b0
nt!NtWaitForSingleObject:
03 -----------------------------
nt:KiServiceTable Offset: fff6f000
Evaluate expression: 1152912708541838336 = 0ffff800`01ab7400
* not fetched (fault) *