Dll注入技術之訊息鉤子

2021-06-20 09:32:33 字數 1511 閱讀 6354

**:黑客反病毒

dll注入技術之訊息鉤子注入

訊息鉤子注入原理是利用windows 系統中setwindowshookex()這個api,他可以攔截目標程序的訊息到指定的dll中匯出的函式,利用這個特性,我們可以將dll注入到指定程序中。主要流程如下圖所示

1.準備階段

需要編寫乙個dll,並且顯式匯出mymessageproc()函式,主要**如下:

lresult winapi mymessageproc(int code,wparam wparam,lparam lparam)

顯示匯出某個函式需要在.def檔案中的exports填寫mymessageproc(),如下圖所示:

2.hook階段

使用setwindowshookex()之前首先需要將hook的dll 載入到本身的程序中,以此得到dll的模組控制代碼,再使用getprocaddress()得到dll中顯示匯出的函式mymessageproc()的函式位址,最後遍歷出待注入程序的執行緒id,這樣setwindowshookex()就可以利用這些引數進行hook了。主要**如下圖所示:

//載入dll到本身程序

hmod = loadlibrary(pdllname);

if(!hmod) return false;

//得到顯示函式的位址

lpfunc = (dword)getprocaddress(hmod, "mymessageproc");

if(!lpfunc)

//得到待注入exe的程序id

dwprocessid = getprocessid(pexename);

if(!dwprocessid)

//得到待注入exe的執行緒id

dwthreadid = getthreadid(dwprocessid);

if(!dwthreadid)

//利用hook進行注入

hhook = setwindowshookex(

wh_getmessage,//wh_keyboard,//wh_callwndproc,

(hookproc)lpfunc,

hmod,

dwthreadid);

3.釋放階段利用loadlibrary()得到的模組控制代碼把本身程序的dll釋放掉,**如下所示:

if(hmod) freelibrary(hmod);
訊息鉤子注入只需要對setwindowshookex()和dll匯出函式有深刻的認識就可以很容編寫,所以**簡單,比較容易實現。

Dll注入技術之訊息鉤子

dll注入技術之訊息鉤子注入 訊息鉤子注入原理是利用windows 系統中setwindowshookex 這個api,他可以攔截目標程序的訊息到指定的dll中匯出的函式,利用這個特性,我們可以將dll注入到指定程序中。主要流程如下圖所示 1 準備階段 需要編寫乙個dll,並且顯式匯出mymessa...

函式鉤子 Dll注入

在應用層可以設定的鉤子方法有許多種,其中經典的鉤子是訊息鉤子,訊息鉤子分為兩種,一種是系統級全域性鉤子,另外一種是執行緒級區域性鉤子,它們都是通過下面這一組函式來實現訊息勾取,實現相對簡單。設定鉤子 setwindowshookex 釋放鉤子 unhookwindowshookex 繼續鉤子 cal...

Dll注入技術之登錄檔注入

黑客反病毒論壇 dll注入技術之reg注入 dll注入技術指的是將乙個dll檔案強行載入到exe檔案中,並成為exe檔案中的一部分,這樣做的目的在於方便我們通過這個dll讀寫exe檔案記憶體資料,例如 hook exe檔案中的api 或以被注入exe的身份去執行一些操作等等。reg注入原理是利用在w...