一直以來有個疑問,就是如果別人在你的電腦上安裝了鍵盤鉤子來監視你的鍵盤按鍵動作,我的程式怎麼才能避開這些全域性鍵盤鉤子(system-wide hook)的監視.正好最近一段時間因為工作關係在研究鉤子,順便研究了一下這個問題,今天算是找到了乙個解決辦法.
解決辦法:
在我的程式中安裝乙個區域性鍵盤鉤子(thread-specified hook),鍵盤鉤子函式中不呼叫callnexthookex;
原理:
1.鉤子鏈可以被破壞.同一型別的鉤子會形成乙個鏈,假如先被呼叫的鉤子沒有呼叫callnexthookex的話,後面的鉤子將得不到呼叫.
2.對於某個特定的執行緒,如果既安裝了執行緒鉤子又安裝了系統鉤子,則執行緒鉤子先於系統鉤子被呼叫.
VC實現的全域性鍵盤鉤子
鍵盤鉤子的功能就是監視系統按鍵動作,這是一種很有用的技術,在一些工程專案中,有監視人員操作動作的需求,便於定位故障原因。也可以用於實現密碼監視等黑客行為。鉤子分執行緒專用鉤子和全域性鉤子,執行緒專用鉤子只能勾到本執行緒的訊息,而全域性鍵盤鉤子能勾到所有系統訊息,功能非常強大,所以用得不好也很容易引起...
如何讓onvif避開lighttpd的安全認證
如何讓onvif避開lighttpd的安全認證 訪問網頁需要認證功能,然而onvif的cgi也是通過lighttpd來call起來的,如何做到訪問跟onvif無關的請求時需要認證,而訪問onvif時又不需要認證呢?想來幾種方法,都記錄下來吧 1 啟動多個lighttpd,分別load不同的confi...
全域性鍵盤鉤子失效與WebRTC的關係分析
1.背景 使用qt cef做了乙個客戶端,並在客戶端中註冊了全域性鍵盤鉤子,本來一切都工作正常,鍵盤鉤子也正常,但是我發現當我在cef中載入了執行webrtc功能的頁面時,鍵盤鉤子盡然失效了,不過切換到其他的桌面程式的時候,發現這個鍵盤鉤子還是存在的,起作用的。2.分析 通過上面的現象開始排查,we...