Windows: различные способы завершения процесса из ядра
Есть один конкретный процесс, который я не могу завершить напрямую с помощью ZwTerminateProcess, потому что его драйвер регистрирует обратный вызов для указанной функции, чтобы защитить себя.
Другие методы:
- Внедрение DLL и вызов ExitProcess
- Присоединение к его адресному пространству с KeAttachProcess с последующим вызовом ZwTerminateProcess (вызывает BSOD IRQL_NOT_LESS_OR_EQUAL)
- MmUnmapViewOfSection (вызывает BSOD, потому что программа пытается записать в нечитаемую память)
Как процесс хакер это делает?
1 ответ
Как ExpandEnvironmentSettings
в kernel32.dll
, вы должны быть в состоянии вызвать его, используя недокументированную подпрограмму ядра KeUserModeCallback
, как описано в https://thisissecurity.net/2014/04/08/how-to-run-userland-code-from-the-kernel-on-windows/.