CTRLADEL(NOCAD)由 Antonio Quezada-Duarte 於 1989 年編寫,針對 DOS 2.0+ 環境,透過攔截鍵盤中斷(INT 09h)過濾 Ctrl+Alt+Del 組合鍵,防止使用者誤觸發系統重啟。作者在標題以大量警語強調:載入後僅能透過關機、Reset 鍵或產生 INT 19h 重啟,且必須在 SideKick 等 TSR 程式之前載入,否則無效。
INT 0CDh 是否已指向本程式版權字串(防重複安裝標記)INT 21h/3509h 取得原 INT 09h 處理器位址 → 儲存於 OLD_INT_9_OFS/SEGINT 21h/2509h 設定新 INT 09h 指向 NEW_INT_9HINT 21h/25CDh 將 INT 0CDh 指向版權字串(常駐標記)INT 21h/3100h (TSR) 常駐保留前段記憶體(含代碼、資料、堆疊)PUSH AX, DS
XOR AX, AX ; DS=0000h (BIOS 資料區段)
MOV AL, DS:[417h] ; 鍵盤旗標位元組
AND AL, CTRL+ALT ; 只保留 Ctrl(bit2) 與 Alt(bit3)
CMP AL, CTRL+ALT ; 兩鍵同時按下?
JNE GO_AHEAD ; 否 → 直接轉交原處理器
AND BYTE PTR DS:[417h], NOT ALT ; 清除 Alt 旗標,欺騙 BIOS 以為未按 Alt
GO_AHEAD:
PUSHF
DB 9Ah, OLD_INT_9_OFS, OLD_INT_9_SEG ; 硬編碼 CALL FAR 原處理器
POP DS, AX
IRET
0000:0417h,Bit 2=Left Ctrl, Bit 3=Left Alt, Bit 5=Right Ctrl, Bit 6=Right Alt。程式僅檢查左鍵組合,右鍵組合仍可觸發重啟(作者未處理)。DB 9Ah, OFFSET, SEGMENT 直接嵌入機器碼,避免間接記憶體存取,節省指令位元組與時脈。PUSHF 將原處理器所需的 Flags 傳遞下去,確保 BIOS 例程正常運作。INT 0CDh 儲存版權字串作為「已安裝」標記,極具巧思。INT 19h 或操作鍵盤控制器命令位元組(60h/64h)仍可重啟KEYB.COM / DOSKEY 可能改變鍵盤處理流程雖然現代作業系統在核心層處理 Ctrl+Alt+Del(Windows Secure Attention Sequence、Linux ctrlaltdel 系統呼叫),但「中斷鉤掛、旗標篩選、狀態竄改、鏈式轉發」這套 TSR 核心模式,在 UEFI 執行階段驅動、Hypervisor 中斷虛擬化、EDR 核心回調監控中依然是基礎範式。