На данный момент мне известны два сценария, в которых windows
берет на себя управление выполнением потока из-за «причин, ориентированных на ошибки» (хотя иногда используется как механизмы потока кода, например, с try/catch
блоки):
SEH (и это c, c ++ оболочки — __try/__except
а также try/catch
соответственно) для которого есть также API
что можно использовать, например, для создания своих собственных исключений.
повреждение стека.
Насколько я знаю, при возникновении случая (2) ОС завершает весь процесс без какого-либо уведомления пользователя.
Мои чудеса следующие:
Есть ли другой документированный способ user-mode
Поток приложения для «путаницы» в манере ОС взять под контроль?
кроме повреждения стека, есть ли сценарии, когда весь процесс отключается без уведомления?
Есть ли случай, когда catch
блок, __except
блокировать или, что еще более агрессивно, функцию, помещенную вручную EXCEPTION_RECORD
в FS:[0]
(как показано в Статья Петрека), не будет ли дан контроль, когда создается исключение?
Задача ещё не решена.
Других решений пока нет …