One more usermode BSOD

Работает только под админом,

1. Вызываем RtlSetProcessIsCritical(TRUE, 0, 0)
2. Завершаем процесс.
3. ???
4, Profit!

  
  1. s0l @
    Супер! Слифко достовляе
  2. Vazonez @
    Хм... Можно юзать как антидебаг трюк:

    1) RtlSetProcessIsCritical(TRUE, 0, 0)
    2) TerminateProcess(-1, 0)

    Если БСОД - то под OllyDbg, если код исполняется дальше - значит все ок.
  3. fbi.cih.ms @
    Для ядерного отладчика это будет анти-анти дебаг.
  4. zzz @
    а что происходит?
  5. fbi.cih.ms @
    ZwSetInformationProcess c классом ProcessBreakOnTermination. В EPROCESS ставится флаг BreakOnTermination, который проверяется ядром при завершении процесса. При закрытии процесса с этим флагом происходит баг чек со стоп кодом CRITICAL_PROCESS_DIED, http://msdn.microsoft.com/en-us/library/ms797138.aspx. При подключенном ядерном отладчике он перехватывает это.