無DLL鍵盤記錄

2021-05-23 23:11:04 字數 1168 閱讀 4614

我們windows系統是建立在訊息傳遞的事件驅動的機制上。用鉤子可以截獲並處理送給其他應用程式的訊息,來完成普通應用程式難以實現的功能。鍵盤記錄者的原理就是使用鍵盤鉤子截獲鍵盤訊息。當然,並非鍵盤記錄一定要使用鉤子,比如wineggdrop的無鉤子鍵盤記錄者。

一般書上都會說:「全域性鉤子函式必須包含在dll中,而執行緒專用鉤子還可以包含在可執行檔案中」。即如果鉤子過程在應用程式中實現,只對該程式起作用;如果鉤子過程在dll中實現,程式在執行中動態呼叫它,它能對整個系統進行監控。我們做鍵盤記錄當然希望是針對整個系統的了,所以我們發現很多鍵盤記錄者或者帶鍵盤記錄功能的木馬服務端裡都包含用來支援鍵盤記錄的dll檔案。多了dll檔案既增加了程式的體積,也容易因為丟了dll檔案而喪失了鍵盤記錄的功能。本文要講的是,並非全域性鍵盤鉤子一定要在dll檔案中實現,程式中亦可以實現全域性鉤子。本文的方法來自著名木馬bo2000,下面將會向大家詳細解說如何實現既使用鍵盤鉤子而又無dll鍵盤記錄者。

先說點基礎知識。實現乙個鍵盤鉤子,必須呼叫api函式setwindowshookex來安裝這個鉤子函式,這個函式的原型為:hhook setwindowshookex(int idhook,hookproc lpfn,hinstance hmod,dword dwthreadid);其中,第乙個引數是鉤子的型別;第二個引數是鉤子函式的位址;第三個引數是包含鉤子函式的模組控制代碼;第四個引數指定監視的執行緒。我們要實現乙個全域性鉤子,所以第四個引數需設定為空。得到控制權的鉤子函式在完成對訊息的處理後,呼叫api函式callnexthookex來傳遞該訊息。關於鉤子的詳細介紹讀者可參考其它書籍。

本文使用的程式設計工具為vc++6.0。具體實現步驟和**解析如下:

1、生成乙個基於對話方塊的程式seukbspy。開啟seukbspydlg.cpp檔案。加入下面的全域性變數和鍵盤鉤子函式。

2、下面是本程式的精華所在。新增按鈕[開始記錄]及其響應函式onstart()並在該函式中解除安裝鉤子:

這裡用getmodulehandle(null)來把自身作為乙個儲存鉤子處理函式的dll,非常巧妙實用,也是這個本程式的精華所在。

3、新增按鈕[開始記錄]及其響應函式onstop()並在該函式中解除安裝鉤子:

通過上面幾步就可以實現乙個無dll檔案的鍵盤記錄者,測試一下就可以得到類似於「seu_2006_5_3.log」檔名的鍵盤記錄日誌檔案。再加上隱藏視窗和郵件傳送功能是不是就成了乙個很實用的鍵盤記錄者?趕快動手打造自己的鍵盤記錄者吧。

鍵盤記錄木馬 鍵盤記錄員

鍵盤記錄員108627 win32.pswtroj.onlinegames.xn.108627 這個病毒是乙個盜號木馬程式。它利用鍵盤記錄的方法,記錄下使用者輸入的全部資訊,進行加密後傳送給病毒作者。病毒作者通過一定技術手段,就可以從這些資訊中篩選出使用者的各類帳號和密碼。此篇預警播報中的病毒,是乙...

鍵盤記錄程式

這是乙個 windows環境下32位組合語言程式設計 中的例子,在動態鏈結庫和鉤子那章,作為乙個鉤子的示例程式。原理很簡單,裝個全域性鉤子,然後鉤住所有的鍵盤資訊即可。但是這裡存在兩個問題,一是裝什麼型別的全域性鉤子才能鉤住所有程序的鍵盤資訊,二是鉤住的鍵盤資訊的翻譯。大家都知道,鉤子函式鉤住的資訊...

vb鍵盤記錄

private sub timer1 timer dx鍵盤記錄 on error resume next static keyarray 255 as byte dim key count as integer,vkeycode as integer,vkeyasc as string di key...