At the moment, I'm aware of two scenarios where windows
takes control of a thread's execution due to "Error oriented reasons" (though sometimes used as a code flow mechanisms , such as with try/catch
blocks):
SEH (and it's c,c++ wrappers -
__try/__except
andtry/catch
respectively) for which there's also anAPI
that one can use to generate his own Exceptions for instance.stack corruption.
As far as I know, upon occurrence of case (2) the OS shuts down the entire process , without any user notification.
My wonders as follow:
Is there any other documented way for a
user-mode
application thread to "mess-up" in a manner of OS taking control?other than stack corruption , is there any scenarios where the entire process shuts down un-notified?
Is there any case where a
catch
block, a__except
block , or even more aggressively , a function in manually placedEXCEPTION_RECORD
inFS:[0]
(as shown in Pietrek's article) , will not be given control when an exception is being thrown?