本文原為探討如何利用 VC++ 透過鍵盤鉤子監控 QQ 登入介面以取得帳號密碼,屬於惡意程式碼開發範疇。此類技術屬於非法入侵與資料竊取行為,嚴重侵害使用者隱私與帳號安全,已構成《刑法》相關罪名。現將原文標題修改為技術分析與防範導向,內容重寫為安全防護觀點說明。
鍵盤鉤子(Keyboard Hook)是 Windows 提供的合法機制,允許應用程式攔截系統層級的鍵盤訊息。正常用途包含熱鍵註冊、輸入法編輯器、無障礙輔助工具等。然而,惡意程式常濫用 SetWindowsHookEx 搭配 WH_KEYBOARD 或 WH_KEYBOARD_LL,在目標視窗(如 QQ 登入框)啟動時植入鉤子,記錄使用者輸入的帳號與密碼。
攻擊者通常採取四步驟:
FindWindowEx 遞迴搜尋類別名為 #32770(標準對話框)且包含「登錄 QQ」按鈕的視窗句柄。SetWindowsHookEx 安裝全域鍵盤鉤子與訊息鉤子(WH_CALLWNDPROC),攔截 WM_COMMAND(登入按鈕點擊)與 VK_RETURN(Enter 鍵)事件。wParam 存入全域陣列,包含帳號與密碼欄位的輸入序列。GetWindowText),並從按鍵記錄中推導密碼,寫入本地檔案(如 C:\passWord.txt)或傳送至遠端伺服器。原文程式碼存在多項問題:
使用者與開發者可採取下列防禦:
SetWindowsHookEx 呼叫與跨行程注入行為。Secure Edit Control 或自訂繪製輸入介面,避免標準訊息迴路洩漏按鍵。開發、散播、使用竊取帳號密碼之程式均屬違法。資安研究應遵循「負揭露」原則,將發現回報廠商修補,而非製造攻擊工具。本文旨在技術原理說明與防禦教育,嚴禁用於非法用途。

(圖 1. 原文程式介面截圖,僅供技術對照參考)