針對利用 Office 自動化介面竊取 Word 內容的惡意代碼,作者開發一款 Word 加載項:Hook DoDragDrop 並進一步 Hook IDropSource::QueryContinueDrag,在拖放操作離開文檔視窗瞬間取消操作,不影響文檔內部拖放體驗。
_IDTExtensibility2 加載項框架OnConnection 中 Hook DoDragDrop (用戶模式 API Hook)DoDragDrop 觸發時:記錄當前文檔視窗句柄,Hook 第二參數 pDropSource 的虛函數 QueryContinueDragQueryContinueDrag 回調中:GetCursorPos+WindowFromPoint 獲取滑鼠下視窗,非文檔視窗則返回 DRAGDROP_S_CANCEL 取消拖放並彈警告QueryContinueDrag 讓正常流程繼續DoDragDrop 參數 pDropSource 的 QueryContinueDrag 是服務端取消拖放的回調,全程跟蹤滑鼠狀態GetCursorPos/WindowFromPoint 輕量級獲取滑鼠下視窗HKEY_CURRENT_USER\Software\Microsoft\Office\Word\Addins「好的保護軟體應在客戶無感知情況下提供保護」——不阻斷內部拖放,僅攔截跨視窗拖放。完整源碼含 Hook 佈防/撤防、虛表修改、註冊表自註冊邏輯,可作為 Office 安全加載項開發參考。