**:黑客反病毒
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...