Что на самом деле означает 0xc0000409
Код появился как сигнал защиты стека. Компиляторы Microsoft кладут рядом с данными функции контрольное значение и перед выходом из неё проверяют, не затёрто ли оно. Если затёрто, какой-то буфер переполнился, и продолжать работу опасно: этим могли бы воспользоваться для захвата программы. Процесс завершается сразу, с кодом STATUS_STACK_BUFFER_OVERRUN. Описание в справочнике Microsoft так и говорит о переполнении, которое потенциально позволяет злоумышленнику получить контроль над приложением.
Со временем тем же кодом стали завершаться программы и по другим поводам. Раймонд Чен из Microsoft в блоге The Old New Thing пишет, что код не обязательно означает переполнение стека: программа просто решила завершиться как можно быстрее. Так срабатывают вызов abort в библиотеке C, необработанная ошибка в коде C++, обнаруженная порча внутренних списков. Поэтому 0xc0000409 сам по себе не говорит ни о взломе, ни о вирусе, ни о поломке — только о том, что программа нашла у себя состояние, в котором работать дальше нельзя.
Система или железо? Если падает одна программа в одном и том же месте, это почти всегда программа: ошибка в версии, несовместимый модуль, испорченный файл настроек или кэша. Если же 0xc0000409 появляется то у игры, то у браузера, то у проводника, в случайные моменты и вперемешку с другими кодами вроде 0xc0000005, вероятнее общая причина. Нестабильная оперативная память и разгон портят данные в памяти любых программ, и каждая замечает это по-своему.
