0

Я использую трассировку событий для Windows (ETW) для отслеживания ядра системных вызовов в Windows Server 2008 R2.В строках sysall ядра Windows, каковы эти тайные адреса?

Я бегу:

logman start "NT Kernel Logger" -p "Windows Kernel Trace" (process,thread,cswitch,syscall) -o events.etl -ets 

В результате следы ядра, я смотрю на атрибуте SysCallAddress и я вижу много того, что я ожидал бы: для примера 0xFFFFF80001999EE0, который нт NtWriteFile.

Проблема в том, что я вижу много адресов в диапазоне 0xFFFFF960, например 0xFFFFF9600004421C, и я не знаю, что находится на этих адресах. Команда ln в отладчике ядра не возвращает никакой информации ни для одного из этих адресов. Кто-нибудь знает, что живет по этим адресам, которые ядро ​​отслеживает как syscalls?

ответ

3

Это системные вызовы в win32k.sys. Think GetMessage, EndDraw и т. Д.

+0

Благодарим за отзыв! У вас есть ссылки? Кроме того, почему отладчик ничего не говорит мне о них? – canzar

+0

win32k отображается в пространство сеансов. Если ваш отладчик нарушен, а не в контексте процесса в сеансе, то ничего не будет видно. Используйте .process/p/r <адрес explorer.exe>, чтобы добраться до места, где вы можете видеть эти адреса. –

+0

При ближайшем рассмотрении я замечаю, что на самом деле я могу видеть этот импорт, когда я нахожусь в контексте процесса. Однако я могу разрешить только их подмножество. Я вижу, что win32k начинается с 'fffff960 00e0000', и я могу разрешать те вызовы, которые происходят за пределами этого адреса, но есть вызовы, которые поступают до этого адреса, например' FFFFF960 0005CE44'. Любое понимание этих? Независимо от того, какой процесс я выбрал, в этом диапазоне адресов никогда не было библиотеки. – canzar