DLL注入實驗 DLL訊息鉤取HOOK

2021-09-29 14:12:34 字數 2883 閱讀 4128

修改dll實現功能

修改改hookdll.cpp,鉤取對notepad的輸入,使得:

a)輸入文字仍能正常顯示

b)所有輸入文字能夠記錄到input.txt檔案中

#include

"windows.h"

#include

"tchar.h"

hinstance g_hinstance =

null

;hhook g_hhook =

null

;bool winapi dllmain

(hinstance hinstdll, dword dwreason, lpvoid lpvreserved)

return true;

}lresult callback keyboardproc

(int ncode, wparam wparam, lparam lparam)

; tchar *p =

null;if

( ncode >=0)

}// 當前程序不是notepad.exe,將訊息傳遞給下乙個鉤子

return

callnexthookex

(g_hhook, ncode, wparam, lparam);}

#ifdef __cplusplus

extern

"c"__declspec

(dllexport)

void

hkstop()

}#ifdef __cplusplus

}#endif

j使用vs2017編譯生成dll,程式作用:鉤取notepad(記事本)的訊息輸入。不過這是notepad不能正常輸入,也不能記錄鉤取的資料,關鍵**都有注釋。

os訊息佇列和應用程式訊息佇列之間存在一條鉤鏈(hook chain),設定好鍵盤訊息鉤子後,處於鉤鏈中的鍵盤訊息鉤子會比應用程式先一步看到相應資訊。在鍵盤訊息鉤子函式的內部,除了可以檢視訊息之外,還可以修改訊息本身,而且還能對訊息實施攔截,阻止訊息傳遞。可以同時設定多個相同的鍵盤訊息鉤子,按照設定的順序依次呼叫,從而組成的鏈條稱為鉤鏈。

其中testdll主要是進行hookdll.dll的裝載與解除安裝,獲取hkstart hkstop的位址,並且使用q來判斷使用者輸入是否終止。

// dllmain.cpp : 定義 dll 應用程式的入口點。   //hookdll1 鉤取notepad的輸入 同時不影響正常輸入 並把輸入儲存到指定的txt

#define _crt_secure_no_warnings

#include

"stdafx.h"

#include

"windows.h"

#include

"tchar.h"

#include

//hinstance g_hinstance =

null

;hhook g_hhook =

null

;//dllmain

bool winapi dllmain

(hinstance hinstdll, dword dwreason, lpvoid lpvreserved)

return true;

}//keyboardproc

lresult callback keyboardproc

(int ncode, wparam wparam, lparam lparam)

; tchar *p =

null

; file *fp =

null;if

((fp =

fopen

("c:test\\input.txt"

,"a+"))

==null)if

(ncode >=0)

}fclose

(fp);}

// 當前程序不是notepad.exe,將訊息傳遞給下乙個鉤子

ps 關於vs如何使用ddl 參考

windows鉤取

Dll注入技術之訊息鉤子

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

Dll注入技術之訊息鉤子

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

DLL注入 APC注入

apc注入的原理是利用當執行緒被喚醒時 apc中的註冊函式會被執行的機制,並以此去執行我們的 dll載入 進而完成 dll注入的目的,其具體流程如下 1 當exe 裡某個執行緒執行到 sleepex 或者waitforsingleobjectex 時,系統就會產生乙個軟中斷 或者是messagebo...