簡介
STATUS_STACK_BUFFER_OVERRUN,值為0xC0000409,又稱棧緩沖區溢出異常,其定義如下:
/
// MessageId: STATUS_STACK_BUFFER_OVERRUN
//
// MessageText:
//
// The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.
//
#define STATUS_STACK_BUFFER_OVERRUN ((NTSTATUS)0xC0000409L) // winnt
說明
系統在此應用程序中檢測到基於堆棧的緩沖區溢出。此溢出可能允許惡意用戶獲得此應用程序的控制權。同時現在的Windows系統上也不僅僅用來表達着個異常,也用來做一些會導致致命錯誤的安全檢測,而引發進程快速失敗。與所有其他異常代碼不同,Fail Fast異常繞過所有異常處理程序(基於幀或向量)。如果啟用了Windows錯誤報告,引發此異常將終止應用程序並調用Windows錯誤報告。本異常代碼最初設計用於引發安全檢查失敗。具體來說,是違反警戒線(/GS)。隨着時間的推移,出於非安全原因,應用程序利用了立即終止功能的願望。這些應用程序利用第一個參數來指定場景(子代碼)。原始的“安全檢查失敗”用例保留值為0。由於每個應用程序的性質,當前未定義異常參數值。
異常填充結構
ExceptionAddress: 0f2846a9 (msvcr120!_invoke_watson+0x0000000e)
ExceptionCode: c0000409 (Security check failure or stack buffer overrun)
ExceptionFlags: 00000001
NumberParameters: 1
Parameter[0]: 00000005//異常子代碼
Subcode: 0x5 FAST_FAIL_INVALID_ARG