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