存取Read-Only系統記憶體
Windows 記憶體管理員 會強制執行未標示為可寫入之頁面的唯讀存取。
唯讀記憶體一律在使用者模式中受到保護。 不過,在 Windows NT 4.0 和舊版中,唯讀記憶體在核心模式中並未受到保護。
如果 Windows 核心模式驅動程式或應用程式嘗試寫入唯讀記憶體區段,系統就會發出錯誤檢查。 如需詳細資訊,請參閱 錯誤檢查0xBE:ATTEMPTED_WRITE_TO_READONLY_MEMORY。
攔截系統呼叫
某些驅動程式會覆寫驅動程式自己的程式碼,並插入跳躍指示或其他變更,來攔截系統呼叫。 因為驅動程式自己的程式碼是唯讀的,所以這項技術會導致發出錯誤檢查。
全域字串
如果要修改全域字串,它不得宣告為常數值的指標:
CHAR *myString = "This string cannot be modified.";
在此情況下,連結器可能會將字串放在唯讀記憶體區段中。 然後嘗試修改字串會導致錯誤檢查。
相反地,字串應該明確宣告為 L 值字元的陣列:
CHAR myString[] = "This string can be modified.";
此宣告可確保字串放在可寫入的記憶體中。