① 想找個HOOK鉤子高手
WINDOW下可進行掛接的過濾函數有
WH_CALLWNDPROC,WH_CBT ,WH_DEBUG,WH_GETMESSAGE ,
WH_HARDWARE ,WH_JOURNALPLAYBACK ,
WH_JOURNALRECORD ,WH_MOUSE ,
WH_MSGFILTER ,WH_SYSMSGFILTER ,
WH_KEYBOARD
鍵盤過濾函數 WH_KEYBOARD 是最常用最有用。
利用函數SetWindowsHookEx()將其掛接在函數鏈首。
攔+截到消息是否傳遞給函 數鏈的下一個函數是由每個具體函數功能確定,用API函數的CallNextHookEx()來傳遞。
掛接函數是全局的,那麼必須將其放在一個.DLL 動態鏈接庫中。
鍵盤掛鉤函數為例:
int FAR PASCAL KeyboardProc( int nCode,WORD wParam,DWORD lParam)
其中KeyboardProc為定義掛接函數名,該函數必須在模塊定義文件中利用 EXPORTS命 令進行說明;nCode決定掛接函數是否對當前消息進行處理;wParam和lParam為具體 的消息內容。
卸鉤 調用一次 UnhookWindowsHookEx(iProc)
動態鏈接庫調用有3種方法。
1.在DEF定義文件中直接用函數名或序號說明:
EXPORTS WEP @1 RESIDENTNAME InitHooksDll
@2 InstallFilter
@3 KeyboardProc
@4
用序號說明格式為:鏈接庫名.函數名(如本例中說明方法為KEYDLL.KeyboardProc)。
2.在應用程序中利用函數直接調用:
首先在應用程序中利用LoadLibrary(LPSTR "鏈接庫名")將動態鏈接庫裝入,並取得 裝載庫模塊句柄hInst,
然後直接利用GetProcAddress(HINSTANCE hInst,LPSTR "函 數過程名")獲取函數地址,然後直接調用該地址即可,
程序結束前利用函數 FreeLibrary( )釋放裝入的動態鏈接庫即可。
3.利用輸入庫.LIB方法 利用IMPLIB.EXE程序在建立動態鏈接庫的同時建立相應的輸入庫.LIB,然後直接在 項目文件中增加該輸入庫。
打字 太麻煩了,不寫了。。。。
② hook怎麼能夠鉤到delegate中的方法
首先呢,在 C# 中一般來說我們把函數稱作方法(Method)。原因是在 C# 中函數只能在類體里,而 OOP 把在類體中的函數稱之為類方法; 那麼,在這里,ProcessKeyHandle 並非代表方法,而是代表一個委託(Delegate)。 如果你懂 C/C++ 的話,那麼委..
③ 關於鉤子(Hook)的問題 [Delphi]
就是用這個方法獲取指定線程ID:GetWindowThreadProcessId
如果實在不行的話可以搞個全局的鉤子(參數為0),這樣也行的。
當用的是全局的鉤子時:
wParam 表示當前所捕捉按鍵狀態(按下或者抬起)
lParam 表示當前所捕捉按鍵的值
用GetClassName可以獲取窗體類名
[DllImport("user32.dll")]
public static extern int GetClassName(
int hwnd,
StringBuilder lpClassName,
int nMaxCount
);
④ HOOK鉤子,個人電腦真的安全嗎
主要還是靠殺毒軟體保護
試試騰訊電腦管家是殺毒+管理,功能二合一,木馬查殺升級為專業殺毒,查殺更徹底,一款殺軟滿足殺毒防護和安全管理雙重需求。四核引擎,4+1查殺更徹底,修復更完美。
⑤ MFC hook鉤子學習
先用spy++(VC自帶工具)看看各個窗口控制項屬性和序號,有利於明確目標和提供參考。
表格,在MFC裡面很大可能是CListCtrl,還有可能是CListBox、Chat。至於你猜的那個概率很低,具體可以SPY++參考。
用鉤子跨進程獲取數據效率是很低的,如果數據量很大,不建議這么搞。
一般數據都是在資料庫文件或者資源中,這兩種不用鉤子效率更高些。
如果只是為了學習鉤子,先從編輯框、窗口標題之類的開始。要進行鉤子攔截,首先還是要知道目標窗口屬性和信息比較方便。
⑥ 關於hookapi
所謂 HookAPI,就是改寫程序的 IAT,再調用我自己寫的用於替換原API函數的函數。在我們自己寫的API函數中,我們可以進行我們想要的工作。之後呢,可以把原來的函數傳回去,也可以不傳回去,只要你設計好了就行。
而所謂調用自己的函數,就是把原函數參數都傳給我的替換函數。我們就可以利用這些參數去干我們想做的事。而系統呢,我想由於微軟設置的這個鉤子的目的(我這么認為的),所以不會去檢查替換函數是否就是原函數,只要參數、返回值符合條件就行,要不會出錯。替換函數的返回值最好是原函數,否則有可能會出錯
HookAPI時,exe程序起到的作用就是進行Hook,把dll注入到要Hook的程序,並且傳回要掛接的進程的ID或者全局鉤子,以便查詢所要掛接的模塊的IAT。如果不注入進去,系統不會讓你去查詢IAT的。DLL做的事情是確定要掛接哪個函數和這個函數在哪個DLL中等。
⑦ 如何用hook鉤子鉤住Textout之類的API函數
API HOOK需要根據情況分析,這不同於消息鉤子的鉤子鏈 API的inline Hook如果沒處理好就會沖突,造成崩潰,而且可能後來的hook改寫位元組可能覆蓋前面的鉤子
⑧ 如何安裝鉤子hook到指定程序
hMod 實例句柄
也就是模塊句柄啦!
假如說你用的123.Dll來存放hook代碼,那麼這個句柄就是123.Dll的模塊句柄。模塊句柄就是模塊基地址。
模塊句柄可以用GetMouDleHandle(「123.Dll」)來獲取。
⑨ 掛接「API」全局鉤子(HOOK) 和遠程訪問技術 誰有詳細易懂的資料 怎麼用 注意什麼
不好意思,幫個忙
⑩ 找人做關於hook api的程序,精通的可以留下聯系方式!付酬勞
一個平台,應用程序可以在上面設置子程以監視指定窗口的某種消息,而且所監視的窗口可以是其他進程所創建的。當消息到達後,在目標窗口處理函數之前處理它。鉤子機制允許應用程序截獲處理window消息或特定事件。
鉤子實際上是一個處理消息的程序段,通過系統調用,把它掛入系統。每當特定的消息發出,在沒有到達目的窗口前,鉤子程序就先捕獲該消息,亦即鉤子函數先得到控制權。這時鉤子函數即可以加工處理(改變)該消息,也可以不作處理而繼續傳遞該消息,還可以強制結束消息的傳遞。