當前位置:首頁 » 編程軟體 » hook編程

hook編程

發布時間: 2022-01-09 04:49:23

㈠ 請問前輩,要學習hook編程,必須看C++對吧,要看什麼書呢

多線程和注冊表編程都不算難,關鍵是要熟悉下,對於新手,還是看基礎的語法,
注冊表編程無非是調用幾個API,所以看看基礎吧.
我自己是學vc的QQ540433263.

㈡ 計算機編程術語解釋什麼是:API函數;hook技術;rootkit技術

API就是應用程序介面,也就是別人的程序向你提供的預定義的程序介面
HOOK,是Windows中提供的一種用以替換DOS下「中斷」的系統機制,中文譯為「掛鉤」或「鉤子」。在對特定的系統事件進行hook後,一旦發生已hook事件,對該事件進行hook的程序就會受到系統的通知,這時程序就能在第一時間對該事件做出響應。
RootKIt,簡單地說就是一個內核級後門/木馬.

㈢ 學VC++HOOK編程的經歷

寫hook的程序如果只是掛到自己程序內的鉤,也可以不必寫dll,掛在外部程序上才需要DLL.
別把hook的作用看得無所不能.其實沒什麼了不起的.windows系統通過消息實現多進程,所有的中斷通過系統捕獲後分析並發消息到個進程的消息隊列,hook其實就是改變了原本消息到程序的鉤子.
相必你是要掛在外部程序上,你就需要解決以下問題.
1.dll的編寫.可以直接開個純dll工程,HOOK的DLL使用標准介面.就是最簡單dll調用方法.COM,ATL,等等可以不看了
2.dll和你的程序通信問題.dll工作在外部程序的程序空間,你的在DLL內部實現的消息到你的傳遞(可以用通道).或者把你的地址直接轉交給DLL所有操作在DLL中完成(普遍這樣做)
MSDN里提供了SPY示例,可以按上面說的把工程拆開思考.你回很快掌握的.

我沒特意去掌握一個方法或函數的用法,winApi函數在用時查查MSDN就可以了.那麼多我也不可能都記住,只需要知道API介面怎麼聲明,怎麼封送數據.畢竟API要封送的函數也好,變數也好,等等,都比較固定.MSDN也對這些做了一一介紹.如果還不太明白那麼按示例寫個簡單的API調用程序多使用,多嘗試不同的申明就能明白API的使用規則.

至於DLL的理解很多地方沒有提,因為那實在太基本了,基本的沒有必要說明,DLL只是一種文件存儲方式.它能讓系統認識,並能變為可執行的代碼段.是程序的一組成部分.可以拆開存儲的一個部分.在DLL的使用上和普通函數沒什麼不一樣,可以把DLL看做工程中編譯了的cpp程序.我們使用DLL只要把他裝載進程序空間,聲明對函數方法就行.至於COM,ATL等等的dll,他門是具有有標準定義介面的dll.根本使用和普通使用一樣.只是開發環境會自動實現一些繁瑣的工作.本意是提高效率,以至於新手初見這些時對程序流程理解上跨度比較大難免變的混亂.

㈣ 有關hook的,參數lParam!!召喚編程高手!

如果是個鍵盤鉤子程序的話,那八成應該是WM_SYSKEYDOWN的消息。

有一定英語基礎的話,推薦看原文:
http://msdn.microsoft.com/zh-cn/library/ms646286(en-us,VS.85).aspx

看不懂的話……我大概翻譯一下(水平較爛~_~)
0-15位:指明當前消息的重復次數。其值就是用戶按下該鍵後自動重復的次數。
16-23位:指明其掃描碼,其值依賴於OEM
24位:指明該按鍵是否為擴展按鍵,所謂擴展按鍵就是Ctrl,Alt之類的,如果是擴展按鍵,其值為1,否則為0
25-28位:保留段,不可用
29位:指明按鍵時的上下文,其值為1時表示在按鍵時Alt鍵被按下,其值為0表示WM_SYSKEYDOWN消息因沒有任何窗口有鍵盤焦點而被發送到當前活動窗口。
30位:指明該按鍵之前的狀態,其值為1時表示該消息發送前,該按鍵是被按下的,其值為0表示該消息發送前該按鍵是抬起的。
31位:指明其轉換狀態,對WM_SYSKEYDOWN消息而言,其值總為0。

結合程序你再研究研究吧~~

哦對,類似的還有WM_KEYDOWN等等,結束你的調用環境去MSDN上查吧,主方面中文資料貌似比較少的樣子~~

㈤ 編程中常說的hook是什麼意思

就是鉤子,用於劫持消息,在windows中是這樣的,因為win32程序是以消息機制為基礎的,比如你點擊滑鼠,會給窗口傳遞一個消息,移動滑鼠,會給窗口一個消息,用鉤子可以比你的窗口先檢測到這個消息,從而得到這個消息進行處理,你的窗口可能就處理不到這個消息了,要看你的鉤子處理程序是否把這個消息傳給窗口,具體看WIN32應用程序開發吧,

㈥ 什麼是驅動、內核開發HOOK 又是什麼又有什麼用呢

你多看點win系統編程自然就會懂這些.
驅動開發就是為windows的設備編寫驅動程序.所謂的游戲保護驅動應該不是屬於這類范疇;內核開發的含義比較含糊,不知道你看到的內核指得什麼?hook是windows的托盤程序.這個托盤程序使用了windows的鉤子技術,hook了api就是hook拿到了這個api的執行鏈的控制權,ring0是晶元執行的最高優先權.看你問問題,是不是打算寫個外掛啊.呵呵.

㈦ C語言求HOOK編程的完整教程

給個地址吧

http://hi..com/bok9/blog/item/7b0cc02dba2cd55d4ec22666.html

㈧ 編程里說的 鉤子和勺子是什麼

Windows系統中鉤子具有相當強大的功能,通過這種技術可以對幾乎所有的Windows 系統中的消息進行攔截、監視、處理。這種技術可以廣泛應用於各種軟體,尤其是需要有監控、自動記錄等對系統進行監測功能的軟體。

VB編程中鉤子的實現

(一)鉤子函數(HOOK Function)的格式。Hook Function實際上是一個函數,如果是系統鉤子,該函數必須放在動態鏈接庫中。該函數有一定的參數格式,在VB中如下:

Private Function HookFunc(ByVal nCode As Long,ByVal wParam As Long,ByVal lParam As Long)As Long

其中,nCode代表是什麼情況之下所產生的鉤子,隨鉤子的不同而有不同組的可能值;參數wParam,lParam傳回值包括了所監視到的消息內容,它隨Hook所監視消息的種類和nCode的值不同而不同。對於用VB所設置的鉤子函數,一般的框架形式如下:

Private Function HookFunc(ByVal nCode As Long,ByVal wParam As Long,ByVal lParam As Long)As Long
Select case of nCode
case ncode<0:hookfunc=callnexthookex(hHookFunc,nCode,wParam,lParam)
case值1:處理過程1:HookFunc=X1
case2:處理過程2:HookFunc=X1
……
end select
end Function

函數的傳回值,如果消息要被處理,則傳0,否則傳1,吃掉消息。

(二)鉤子的安裝及執行。鉤子的安裝要用到幾個API函數:可以使用API函數SetWindowsHookEx()把一個應用程序定義的鉤子子程安裝到鉤子鏈表中。SetWindowsHookEx()函數的聲明如下:

Declare function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA"(ByVal idHook As Long,ByVal lpfn As Long,ByVal hmod As Long,ByVal dwThreadId As Long)As Long

idHook值為它處理的消息類型;lpfn值為鉤子子程序的地址指針。如果dwThreadId參數為0或是一個由別的進程創建的線程的標識,lpfn必須指向DLL中的鉤子子程。除此以外,lpfn可以指向當前進程的一段鉤子子程代碼。hMod值為應用程序的句柄,標識包含lpfn所指的子程的DLL。如果dwThreadId標識當前進程創建的一個線程,而且子程代碼位於當前進程,hMod必須為0。dwThreadId值為與安裝的鉤子子程相關聯的線程的標識符,如果為0,鉤子子程與所有的線程關聯。鉤子安裝成功則返回鉤子子程的句柄,失敗返回0。

另外,一般應在鉤子子程中調用CallNextHookEx()函數以執行鉤子鏈表所指的下一個鉤子子程,否則安裝了別的鉤子的應用程序就會收不到鉤子通知,從而產生錯誤的結果。CallNextHookEx()函數的聲明如下:

Declare Function CallNextHookEx Lib"user32" Alias "CallNextHookEx"(ByVal hHook As Long,ByVal ncode As Lonog, ByVal wParam As Long,lParam As Any)As Long

hHook值是SetWindowsHookEx()的傳回值,nCode、wParam、lParam則是Hook函數中的三個參數。在程序終止之前,必須調用UnhookWindowsHookEx()函數釋放與鉤子關聯的系統資源。UnhookWindowsEx()函數聲明如下:

Declare Function Unhook WindowsHookEx Lib "user32" Alias "Unhook WindowsHookEx(ByVal hHook As Long)As Long

hHook為安裝鉤子時的返回值,即鉤子子程的句柄。

㈨ 是不是在MFC中hook編程中只能有一個hook的句柄是類成員,另一個只能是全局hook句柄

不是這樣的啊,沒有這種規定的。你從哪裡看到的?
都是根據實際編程中的需求來確定的。

㈩ 利用C++編程,將hook(鉤子)加到程序每一個函數,其中hook後跳轉到自己自定義函數代碼,實現函數列印功能


用SetWindowsHookEx攔截QQ密碼框,這個我也試過,攔截的是亂碼。
原因據說是QQ用了nKey鍵盤保護。
QQ2011版的我沒有試過,10版的我試過,用WinIO可以攔截密碼。
不過WinIO載入了驅動,360會有提示,用DirectX監視鍵盤也攔截不下來。
誰知道11版的WinIO還管事不?,你可以從網上下一個WinIO。
WinIO包含一個庫文件,一個動態鏈接庫文件,一個驅動文件。

我告訴你個天下最好的辦法吧:
1.將Kernel32.dll或者user32.dll替換成你的。
2.在鍵盤這個硬體上做手腳。

熱點內容
配置文件ini如何寫 發布:2024-03-29 17:31:05 瀏覽:997
如何更改微信密碼修改 發布:2024-03-29 17:24:49 瀏覽:588
探影哪個配置性價比最高 發布:2024-03-29 17:24:08 瀏覽:485
phpmyadminlinux安裝 發布:2024-03-29 17:13:15 瀏覽:792
python中replace 發布:2024-03-29 17:08:17 瀏覽:652
mdb導入sql 發布:2024-03-29 17:07:36 瀏覽:128
java資料庫工具類 發布:2024-03-29 16:31:15 瀏覽:388
安卓機哪裡看型號 發布:2024-03-29 15:59:40 瀏覽:281
cad解壓錯誤 發布:2024-03-29 15:01:45 瀏覽:79
存儲指令集 發布:2024-03-29 14:39:27 瀏覽:649