
[英]How to hook external process with SetWindowsHookEx and WH_KEYBOARD
[英]how to hook a specific API on Windows with SetWindowsHookEx?
我試圖在Windows上的其他進程(我可能不知道進程ID)中掛接一個API(例如MessageBox()),我知道我必須使用SetWindowsHookEx()函數。 但是,我仍然有三個問題:
1)SetWindowsHookEx()函數可以使鈎子全局,即不限於當前進程? (當其他應用程序調用此API時,它會被掛鈎嗎?)
2)如果我想用自己的函數替換需要連接的API,該怎么辦?
3)我閱讀了許多材料,並發現了術語“掛鈎過程”或“掛鈎功能”。 我應該如何理解? 當前,我將其用作替換API的函數(再說一遍,MessageBox)。
這不是SetWindowsHookEx
的用途。 SetWindowsHookEx
用於掛接到Windows消息,而不是API(例如,如果您想知道窗口何時更改大小或被創建)。
掛鈎API調用更復雜,更混亂。 沒有內置的方法可以做到。 您通常想找到一個圖書館來幫助您,例如Detours 。
您可以為此使用Deviare API Hook 。 使用此庫,即使使用.NET,也可以將任何API插入10行代碼中。與Detours的不同之處在於,您不必編寫在每個過程中插入的代碼。 您可以僅掛接它們就鈎住所有想要的進程。 然后,您將以自己的方式接聽電話。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.