One more usermode BSOD
Работает только под админом,
1. Вызываем RtlSetProcessIsCritical(TRUE, 0, 0)
2. Завершаем процесс.
3. ???
4, Profit!
1. Вызываем RtlSetProcessIsCritical(TRUE, 0, 0)
2. Завершаем процесс.
3. ???
4, Profit!
RSS:
Супер! Слифко достовляе
Хм... Можно юзать как антидебаг трюк:
1) RtlSetProcessIsCritical(TRUE, 0, 0)
2) TerminateProcess(-1, 0)
Если БСОД - то под OllyDbg, если код исполняется дальше - значит все ок.
Для ядерного отладчика это будет анти-анти дебаг.
а что происходит?
ZwSetInformationProcess c классом ProcessBreakOnTermination. В EPROCESS ставится флаг BreakOnTermination, который проверяется ядром при завершении процесса. При закрытии процесса с этим флагом происходит баг чек со стоп кодом CRITICAL_PROCESS_DIED, http://msdn.microsoft.com/en-us/library/ms797138.aspx. При подключенном ядерном отладчике он перехватывает это.