Delphi/舊版程式在 Win10/11 觸發 DEP 保護導致崩潰,加入例外清單永久解決
錯誤形式:Access violation at address XXXXXXXX in module 'xxx.exe'. Read/Write of address XXXXXXXX。常見於 **Delphi/C++Builder 編譯的舊程式**、無數字簽名的舊工具、破解補丁/Keygen、舊版遊戲啟動器。根因:**DEP (Data Execution Prevention) 誤判程式在不可執行記憶體區域執行代碼**。
圖解修復步驟 (Win10/11 通用)
- 開啟系統屬性: `Win+X` → 系統 → 關於 → **進階系統設定** (或 `Win+R` → `sysdm.cpl` → 進階標籤)。
- 效能設定: 進階標籤 → 效能區塊 → **設定** 按鈕。
- 數據執行保護 (DEP) 標籤: 選擇 **「為所有程式和服務開啟 DEP,除了我選取的那些」** (次優選項,預設通常為「僅基本 Windows 程式和服務」)。
- 新增例外: 點擊 **「新增」** 按鈕 → 瀏覽選擇報錯程式的主執行檔 (`.exe`) → 開啟 → 確定。
- 套用並重啟: 連續點擊確定關閉所有對話框 → **重新啟動電腦** → 再次運行程式驗證。



原理說明
- DEP 為硬體/軟體協同防護機制 (CPU NX/XD bit + OS),標記堆疊/堆/資料頁面為**不可執行**,防止緩衝區溢位攻擊。
- 舊編譯器 (Delphi 7/2007 等) 生成的代碼可能使用動態代碼生成/即時編譯/殼保護技術,觸發 DEP 誤報。
- 加入例外將關閉該程式的 DEP 保護,**僅影響該程式**,系統其餘進程仍受保護。
備用方案 (若 DEP 例外無效)
- 下載該程式**最新版本/官方正式版** (修復了相容性問題)。
- 以**相容模式**運行:程式 `.exe` → 內容 → 相容性 → 勾選「以相容模式運行」→ 選 Windows 7 / XP SP3 → 勾選「以管理員身分執行」。
- 檢查是否缺少運行時庫 (VC++ 2005-2022、.NET Framework 3.5/4.8)。
- 若為破解補丁/Keygen,嘗試換其他組發布的版本 (如 3DM → CODEX → RELOADED)。
安全提醒: 加入 DEP 例外**降低了該程式的安全防護**。僅對**信任來源、必須使用的舊程式**操作。不明來源的破解工具/Keygen 建議在虛擬機/沙箱中運行,勿在主力系統加入例外。