第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何用HOOK鉤子替換掉原來(lái)的函數(shù)功能?

如何用HOOK鉤子替換掉原來(lái)的函數(shù)功能?

慕哥6287543 2019-02-07 15:07:35
如何用HOOK鉤子替換掉原來(lái)的函數(shù)功能?
查看完整描述

2 回答

?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

WINDOW下可進(jìn)行掛接的過(guò)濾函數(shù)有
WH_CALLWNDPROC,WH_CBT ,WH_DEBUG,WH_GETMESSAGE ,
WH_HARDWARE ,WH_JOURNALPLAYBACK ,
WH_JOURNALRECORD ,WH_MOUSE ,
WH_MSGFILTER ,WH_SYSMSGFILTER ,
WH_KEYBOARD
鍵盤(pán)過(guò)濾函數(shù) WH_KEYBOARD 是最常用最有用。

利用函數(shù)SetWindowsHookEx()將其掛接在函數(shù)鏈?zhǔn)住?br/>攔+截到消息是否傳遞給函 數(shù)鏈的下一個(gè)函數(shù)是由每個(gè)具體函數(shù)功能確定,用API函數(shù)的CallNextHookEx()來(lái)傳遞。

掛接函數(shù)是全局的,那么必須將其放在一個(gè).DLL 動(dòng)態(tài)鏈接庫(kù)中。

鍵盤(pán)掛鉤函數(shù)為例:
int FAR PASCAL KeyboardProc( int nCode,WORD wParam,DWORD lParam)
其中KeyboardProc為定義掛接函數(shù)名,該函數(shù)必須在模塊定義文件中利用 EXPORTS命 令進(jìn)行說(shuō)明;nCode決定掛接函數(shù)是否對(duì)當(dāng)前消息進(jìn)行處理;wParam和lParam為具體 的消息內(nèi)容。

卸鉤 調(diào)用一次 UnhookWindowsHookEx(iProc)

動(dòng)態(tài)鏈接庫(kù)調(diào)用有3種方法。
1.在DEF定義文件中直接用函數(shù)名或序號(hào)說(shuō)明:
EXPORTS WEP @1 RESIDENTNAME InitHooksDll
@2 InstallFilter
@3 KeyboardProc
@4
用序號(hào)說(shuō)明格式為:鏈接庫(kù)名.函數(shù)名(如本例中說(shuō)明方法為KEYDLL.KeyboardProc)。

2.在應(yīng)用程序中利用函數(shù)直接調(diào)用:
首先在應(yīng)用程序中利用LoadLibrary(LPSTR "鏈接庫(kù)名")將動(dòng)態(tài)鏈接庫(kù)裝入,并取得 裝載庫(kù)模塊句柄hInst,
然后直接利用GetProcAddress(HINSTANCE hInst,LPSTR "函 數(shù)過(guò)程名")獲取函數(shù)地址,然后直接調(diào)用該地址即可,
程序結(jié)束前利用函數(shù) FreeLibrary( )釋放裝入的動(dòng)態(tài)鏈接庫(kù)即可。

3.利用輸入庫(kù).LIB方法 利用IMPLIB.EXE程序在建立動(dòng)態(tài)鏈接庫(kù)的同時(shí)建立相應(yīng)的輸入庫(kù).LIB,然后直接在 項(xiàng)目文件中增加該輸入庫(kù)。



查看完整回答
反對(duì) 回復(fù) 2019-03-26
  • 2 回答
  • 0 關(guān)注
  • 1413 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)