Как захватить Etw в режиме ядра?

Я пытаюсь захватить некоторые системные вызовы, используя Etw в своем драйвере, точнее, мне нужно захватить вызовы пользовательского режима NtWriteVirtualMemory и NtReadVirtualMemory, я пытался использовать провайдера: Microsoft Windows Threat Intelligence, я использовал PerfView для Windows 10 1909 и использовал компилятор сообщений для компиляции манифеста(именно то, что сказала Microsoft) и проверил пример кода Microsoft Etw, но по какой-то причине мой обратный вызов c только один раз (когда EtwRegister вызывается в моем DriverEntry), чтобы зарегистрировать свой обратный вызов, я только что позвонил EtwRegister, что мне нужно сделать, чтобы мой обратный вызов был вызван? Я использую образец кода Microsoft с заголовочным файлом, созданным mc.exe (компилятором сообщений).


person cYeR    schedule 21.02.2020    source источник


Ответы (1)


Образец, который вы рассмотрели, предназначен для поставщика ETW, а не для потребителя. Я не уверен, что существует задокументированный способ использования событий ETW из ядра. Вы можете проверить примеры использования событий из пользовательского режима: https://github.com/microsoft/Windows-driver-samples/tree/master/general/tracing/SystemTraceControl

Также обратите внимание, что поставщик Microsoft Windows Threat Intelligence ETW может использоваться только в процессе типа Anti-Malware PPL. Для этого требуется наличие драйвера раннего запуска AntiMalware с соответствующей службой AntiMalware. Дополнительную информацию можно найти по адресу: https://docs.microsoft.com/en-us/windows-hardware/drivers/install/early-launch-antimalware https://docs.microsoft.com/en-us/windows/win32/services/protecting-anti-malware-services-

person Omer Yair    schedule 12.03.2020
comment
Я не знал, что для захвата Microsoft Windows Threat Intelligente ETW должен быть процесс Anti Malware PPL, спасибо за информацию. - person cYeR; 25.03.2020